클래스의 여러 void 메서드를 호출하는 void 메서드를 테스트하고 있습니다.이 메서드는 모두 같은 클래스에 있습니다. 방법은Mockito의 void 메서드 내에서 여러 void 메서드 호출을 무시하는 방법
public void methodToTest() {
methodA();
methodB();
}
void methodA() {
methodA1();
methodA2();
methodA3();
}
는 내가 뭘하려는 것은 아무것도하지 않는 이상 methodA()
의 원인입니다 ...이 라인을 따라 뭔가입니다. 나는 아무 소용 methodA()
에 모두 doThrow()
및 doAnswer()
을 시도했습니다
void methodA() { }
: 그건 내가 methodA()
은 기본적으로 다음과 같이되고 싶어한다. 그것들은 완전히 무시당하는 것처럼 보입니다.
내가 무엇을 시도했다의 예
...doThrow(new RuntimeException()).when(mockedClass).methodA();
는 Mockito를 사용하여이 할 수있는 방법이 있나요? 나는 수정중인 수업을 변경할 자유가 없다.
'methodA'가 '최종'이 아닌지 확인하십시오. – Brice
'methodA'가'final'이 아닙니다 –
부분적 모의를하고 싶거나,'methodA'를 실행하는 중에'methodB' 만 실행하고 싶은 것처럼 스 니펫을 뒤돌아 보는 것이 좋습니다. 당신은 가장 확실하게'mock (YourObject.class)'를 사용하고 있습니다. 물론 모의 객체는 아무것도하지 않으며, 절대 실제 코드를 실행하지 않을 것입니다. 기본적으로 실제 코드를 실행할 스파이 (YourObject.class)가 원하는 것을 얻을 수 있습니다. 그러나 부분적인 모의는 테스트 냄새로 인식됩니다. 디자인 냄새가 아니라면,'methodA'의 행동을 API에서'AStrategy'처럼 드러 낼 수있는 의존성으로보아야합니다. – Brice