매개 변수화 된 생성자를 사용하여 다른 클래스의 개체를 만드는 메서드를 테스트하고 싶습니다. MyClass의 생성자를 조롱 했음에도 불구하고 생성자 구현에있어 오류가 발생하는 타사 라이브러리를 만듭니다. 나는 Mockito/PowerMockito를 사용하고 있습니다. 내가 지금까지 시도 무엇PowerMockito를 사용하는 조롱 생성자가 작동하지 않습니다.
public class ClassTobeTested{
public void execute(){
//some code
// ......
MyClass myClass = new MyClass(profile);
myclass.someMethod();
}
}
을 테스트 할
public class MyClass{
private MyObj obj;
MyClass (String profile)
{
//some 3rd party library call
obj = thridPartyLib.someMethod(profile);
}
public String someMethod(){
return obj.someExternalCall();
}
}
클래스 - classUnderTest.execute()
은 MyClass의 생성자의 일부입니다 thridPartyLib.someMethod(profile);
를 호출 끝납니다.
@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
public class ClassTobeTestedTest {
private MyClass mockMyClass;
private ClassTobeTested classUnderTest;
@Before
public void init() {
classUnderTest = new ClassTobeTested();
mockMyClass = PowerMockito.mock(MyClass.class);
}
@Test
public void testExecute(){
PowerMockito.whenNew(MyClass.class)
.withArguments(Mockito.any())
.thenReturn(mockMyClass);
classUnderTest.execute();
}
}
예. 이것은 좋은 해결책입니다. – javaPlease42