如何使模拟方法的行为不同取决于它被调用的次数

时间:2012-11-21 14:45:55

标签: java mockito powermock

无论如何我们可以使用mocked方法的行为有所不同,具体取决于调用此模拟方法的次数?

例如。

如果您有一个名为

的方法
public boolean mockedmMethod() {
    //logic here
}

你想用这种方式嘲笑:

第一次调用mockedMethod()时,返回true

第二次,第三次被调用......,返回false

2 个答案:

答案 0 :(得分:2)

这是否满足您的需求?

given(mock.mockedMethod())
        .willReturn(true, true, false, false)
        .willReturn(true)
        .willThrow(IllegalStateException.class)
        .will(execute_my_custom_answer());

答案 1 :(得分:1)

实际上,我发现了:

Mockito.when(mockedMethod()).thenReturn(true).thenReturn(false);

也可以解决问题。