Mockito2를 사용하는 경우 최종 클래스 및 메소드의 조롱을 지원하는 새로운 인큐베이팅 기능을 사용하여이 작업을 수행 할 수 있습니다.
요점 :
1. "org.mockito.plugins.MockMaker"라는 이름의 간단한 파일을 만들어 "mockito-extensions"라는 폴더에 넣습니다. 이 폴더는 클래스 경로에서 사용할 수 있어야합니다.
2. 위에서 생성 된 파일의 내용은 아래와 같이 한 줄이어야합니다 :
mock-maker-inline
mockito 확장 메커니즘을 활성화하고이 옵트 인 기능을 사용하려면 위의 두 단계가 필요합니다.
샘플 클래스는 다음과 같습니다.
FinalClass.java
public final class FinalClass {
public final String hello(){
System.out.println("Final class says Hello!!!");
return "0";
}
}
Foo.java
public class Foo {
public String executeFinal(FinalClass finalClass){
return finalClass.hello();
}
}
FooTest.java
public class FooTest {
@Test
public void testFinalClass(){
// Instantiate the class under test.
Foo foo = new Foo();
// Instantiate the external dependency
FinalClass realFinalClass = new FinalClass();
// Create mock object for the final class.
FinalClass mockedFinalClass = mock(FinalClass.class);
// Provide stub for mocked object.
when(mockedFinalClass.hello()).thenReturn("1");
// assert
assertEquals("0", foo.executeFinal(realFinalClass));
assertEquals("1", foo.executeFinal(mockedFinalClass));
}
}
도움이 되길 바랍니다.
여기에 조롱 할 수 없는 완전한 기사가 있습니다 .