EasyMock 무효 메서드 - expectLastCall()
때때로 우리는 void 메서드를 조롱하고 싶을 때가 있습니다. EasyMock expect()
메서드는 void 메서드를 조롱하는 데 사용할 수 없습니다. 그러나 andAnswer()
와 함께 expectLastCall()
을 사용하여 void 메서드를 모의할 수 있습니다.
EasyMock 무효 방법
expectLastCall()
및 andAnswer()
를 사용하여 void 메서드를 조롱할 때 getCurrentArguments()
를 사용하여 메서드에 전달된 인수를 가져올 수 있습니다. 그리고 그것에 대해 몇 가지 작업을 수행합니다. 마지막으로, 우리는 void 메서드를 조롱하고 있기 때문에 null을 반환해야 합니다. 다음과 같은 유틸리티 클래스가 있다고 가정해 보겠습니다.
package com.journaldev.utils;
public class StringUtils {
public void print(String s) {
System.out.println(s);
}
}
다음은 EasyMock을 사용하여 void 메서드 print()를 조롱하는 코드입니다.
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);
}
}
expectLastCall().andVoid()
만약 우리가 단지 void 메서드를 모의하고 싶고 어떤 로직도 수행하고 싶지 않다면, 모의된 객체에서 void 메서드를 호출한 직후 expectLastCall().andVoid()
를 사용할 수 있습니다.
GitHub 리포지토리에서 전체 프로젝트와 더 많은 EasyMock 예제를 확인할 수 있습니다.