Автор оригинала: Pankaj Kumar.
EasyMock позволяет нам издеваться над исключениями при вызове определенного метода. Мы можем сделать это с помощью и метода Throw()
вместе с expect()
.
Пример макетного исключения EasyMock
Допустим, у нас есть следующий класс.
package com.journaldev.utils; public class StringUtils { public String toUpperCase(String s) { return s.toUpperCase(); } }
Вот пример насмешки над StringUtils
объектом, а затем заглушить его метод, чтобы бросить Исключение незаконных аргументов
.
package com.journaldev.easymock; import static org.easymock.EasyMock.*; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; import com.journaldev.utils.StringUtils; public class EasyMockExceptionExample { @Test public void test() { StringUtils mock = mock(StringUtils.class); expect(mock.toUpperCase(null)).andThrow(new IllegalArgumentException("NULL is not a valid argument")); replay(mock); IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> mock.toUpperCase(null)); assertEquals("NULL is not a valid argument", exception.getMessage()); verify(mock); } }
Мы используем утверждения JUnit 5 для проверки исключения и его сообщения.