在使用Mockito框架时,如果您想要在下次调用时返回不同的值,可以使用thenReturn()
和thenAnswer()
方法来实现。
以下是一个示例代码:
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import java.util.ArrayList;
import java.util.List;
import static org.mockito.Mockito.*;
public class MockitoTest {
interface MyService {
String getData();
}
@Test
public void testMockitoReturnDifferentValues() {
MyService mockService = mock(MyService.class);
// 使用thenReturn()方法设置第一次调用返回值
when(mockService.getData()).thenReturn("First Value");
// 使用thenAnswer()方法设置第二次调用返回值
when(mockService.getData()).thenAnswer(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
return "Second Value";
}
});
// 第一次调用
String result1 = mockService.getData();
System.out.println("第一次调用结果:" + result1); // 输出:First Value
// 第二次调用
String result2 = mockService.getData();
System.out.println("第二次调用结果:" + result2); // 输出:Second Value
// 验证方法调用次数
verify(mockService, times(2)).getData();
}
}
在这个示例中,我们首先使用thenReturn()
方法设置了第一次调用返回的值为"First Value",然后使用thenAnswer()
方法设置了第二次调用返回的值为"Second Value"。在第一次和第二次调用中,我们可以看到返回的值分别是"First Value"和"Second Value"。
在实际使用中,您可以根据需要设置不同的返回值,以满足您的测试需求。
领取专属 10元无门槛券
手把手带您无忧上云