0
@Mock
Object obj;
List<Obejct obj> objs;
objs
을 반복 할 때 모의 객체 obj를 다시 얻는 방법은 무엇입니까?Mockito : 목록을 반복 할 때 모의 객체를 얻는 방법?
@Mock
Object obj;
List<Obejct obj> objs;
objs
을 반복 할 때 모의 객체 obj를 다시 얻는 방법은 무엇입니까?Mockito : 목록을 반복 할 때 모의 객체를 얻는 방법?
코드 :이 코드에서 볼 수 있듯이, 반복자를 조롱하는 것은 두 번째, 세 번째, e.t.c 호출에 대해 서로 다른 모의 객체를 반환하는 매우 편리한 방법이다
@Mock
private Iterator<YourObject> iteratorMock;
//...
when(yourListMock.iterator()).thenReturn(iteratorMock);
when(iteratorMock.hasNext()).thenReturn(Boolean.TRUE, Boolean.TRUE,
Boolean.TRUE, Boolean.FALSE);
when(iteratorMock.next()).thenReturn(yourMock1, yourMock1, yourMock2);
.
이 방법을 사용하면 두 번째 호출에서 예외가 발생하고 세 번째 호출이 다시 작동하므로 두 번째 호출의 예외가 처리되고 세 번째 결과가 여전히 처리된다는 것을 테스트 할 수 있습니다.
실제 목록을 사용하는 것이 좋습니다.하지만 조롱은 더 강력하고 특정 테스트에 실제로 필요한 코드가 더 압축되어 있다고 생각합니다.
[this post] (http://whyjava.wordpress.com/2012/03/11/quick-tip-on-mockito-mocking-iterator/) – eebbesen
다음과 같은 특별한 이유가 있지 않는 한 실제'List' (예를 들어, 작은 단위 테스트에서 반드시 커야합니다)를 사용하고, 실제'List'를 사용하여 모의 객체를 추가하십시오. Java 콜렉션은 잘 정의되고 잘 테스트되어 있으므로 모방 할 필요가 없습니다. –
그 대답은 매우 유용합니다. https://stackoverflow.com/a/43067304/3800377 –