여러 번 호출 할 수있는 조롱 된 객체의 메소드가 있습니다 (재귀 호출). 이 방법은 다음과 같이 정의된다 :조롱 된 메서드가 처음으로 호출 될 때만 예외를 throw하는 방법은 무엇입니까?
public void doCommit() { }
나는이 규칙을 사용 실패를 이야기하기 위해서는 :
doThrow(new RuntimeException()).when(mMockedObject).doCommit();
하지만이 메서드는이 예외를이 호출 될 때마다 던질 수 있습니다. 예를 들어, 호출 된 첫 번째 및 세 번째 시간에만 던져 넣을 수 있도록 어떻게 만들 수 있습니까? 즉, 예를 들어, 예외를 throw하지 않고 반환하는 두 번째 및 네 번째 시간을 의미합니다. 나는 doCommit()의 저자가 아니며, 내가 변경할 수있는 소스 코드가 없다는 것을 주목하라. Stubbing Consecutive Calls doco 읽기
위대한, 나는 올바른 방향으로 당신을 가리켰습니다. –
을'BDDMockito '로 설정하면 willThrow (new RuntimeException()). willNothing(). willThrow (...). willNothing(). given (mMockedObject) .doCommit();' – ArtB