Автор оригинала: Pankaj Kumar.
Иногда нам хочется поиздеваться над пустыми методами. Метод EasyMock expect()
нельзя использовать для насмешек над пустыми методами. Однако мы можем использовать expectLastCall()
вместе с и Answer()
для насмешек над методами void.
Метод пустоты EasyMock
Когда мы используем expectLastCall()
и и Answer()
для моделирования методов void, мы можем использовать getCurrentArguments()
для передачи аргументов методу и выполнения некоторых действий над ним. Наконец, мы должны вернуть значение null , так как мы издеваемся над методом void.
Допустим, у нас есть служебный класс, как:
package com.journaldev.utils; public class StringUtils { public void print(String s) { System.out.println(s); } }
Вот код для макета метода void print() с помощью EasyMock.
package com.journaldev.easymock; import static org.easymock.EasyMock.*; import org.junit.jupiter.api.Test; import com.journaldev.utils.StringUtils; public class EasyMockVoidMethodExample { @Test public void test() { StringUtils mock = mock(StringUtils.class); mock.print(anyString()); expectLastCall().andAnswer(() -> { System.out.println("Mock Argument = " +getCurrentArguments()[0]); return null; }).times(2); replay(mock); mock.print("Java"); mock.print("Python"); verify(mock); } }
На рисунке ниже показан вывод консоли при выполнении вышеупомянутого теста JUnit.
Ожидаемый вызов().android()
Если мы просто хотим издеваться над методом void и не хотим выполнять какую-либо логику, мы можем просто использовать expectLastCall().и Void()
сразу после вызова метода void для издевательского объекта.