테스트 할 클래스의 개인 메서드가 실행되는지 또는 powermockito를 사용하지 않는지 확인하고 싶습니다.Powermockito를 사용하여 개인 메서드 호출 여부 확인
내가 시험이 클래스를 가지고 있다고 가정하자 :
public class ClassToTest {
public boolean methodToTest() {
//doSomething (maybe call privateMethod or maybeNot)
return true;
}
//I want to know if this is called or not during the test of "methodToTest".
private void privateMethod() {
//do something
}
}
나는 "methodToTest"나는 올바른 결과를 반환하는 경우뿐만 아니라 그것이 개인 방법 "privateMethod"또는하지를 실행 여부를 확인하려면 테스트합니다. 다른 토론에서 검색 powermockito를 사용하지만 작동하지 않는이 테스트를 작성했습니다. 내가 디버거를 사용할 때
public class TestClass {
@Test
testMethodToTest(){
ClassToTest instance = new ClassToTest();
boolean result = instance.methodToTest();
assertTrue(result, "The public method must return true");
//Checks if the public method "methodToTest" called "privateMethod" during its execution.
PowerMockito.verifyPrivate(instance, times(1)).invoke("privateMethod");
}
}
는 민간 방법은 테스트 중에 한 번 실행 된 경우 마지막 줄 (PowerMockito.verifyPrivate ...)를 확인하지 않는 것 대신 개인을 실행하는 것 메서드 자체. 또한 테스트 통과하지만 디버거를 사용하여 "private.methodToTest()"호출 중에 private 메서드가 실행되지 않는다고 확신합니다. 무엇이 잘못 되었나요?
모의가 아닌 클래스의 실제 인스턴스를 확인하려고합니다! –
나는 뭔가를 놓쳤다. 그렇게하는 올바른 방법은 무엇인가? 모의 행위를 테스트하는 것이 맞습니까? mock 객체는 테스트 할 클래스가 다른 객체와 갖는 참조를 숨기고 테스트 할 클래스의 인스턴스가 실제 객체가되어야한다고 가정했습니다. – user2572526
부름을받는 이유는 무엇입니까? 모든 테스트는 공용 메서드가 올바른 작업을 수행하는지 여부를 고려해야하며 특정 개인 메서드가 호출되는지 여부는 신경 쓰지 않아야합니다. –