你可以使用thenAnswer
方法来做到这一点(与链接时when
):
when(someMock.someMethod()).thenAnswer(new Answer() {
private int count = 0;
public Object answer(InvocationOnMock invocation) {
if (count++ == 1)
return 1;
return 2;
}
});
或使用等效的静态doAnswer方法:
doAnswer(new Answer() {
private int count = 0;
public Object answer(InvocationOnMock invocation) {
if (count++ == 1)
return 1;
return 2;
}
}).when(someMock).someMethod();
怎么样
when( method-call ).thenReturn( value1, value2, value3 );
你可以在thenReturn的括号中放入任意数量的参数,只要它们都是正确的类型即可。第一次调用该方法时将返回第一个值,然后将返回第二个答案,依此类推。一旦所有其他值用完,将重复返回最后一个值。