使用Mockito测试对同一方法的两个不同调用,为每个调用返回不同的响应,可以按照以下步骤进行:
when(mockObject.method()).thenReturn(value)
设置第一个调用的预期结果,使用when(mockObject.method()).thenReturn(anotherValue)
设置第二个调用的预期结果。下面是一个示例代码,演示了如何使用Mockito测试对同一方法的两个不同调用,为每个调用返回不同的响应:
import org.junit.Test;
import org.mockito.Mockito;
import static org.junit.Assert.assertEquals;
public class ExampleTest {
@Test
public void testMethod() {
// 创建被测试对象
Example example = new Example();
// 创建模拟对象
Dependency dependency = Mockito.mock(Dependency.class);
// 设置方法调用的预期结果
Mockito.when(dependency.getValue()).thenReturn("Value1").thenReturn("Value2");
// 将模拟对象注入到被测试对象中
example.setDependency(dependency);
// 执行测试
String result1 = example.method();
String result2 = example.method();
// 验证结果
assertEquals("Value1", result1);
assertEquals("Value2", result2);
Mockito.verify(dependency, Mockito.times(2)).getValue();
}
}
class Example {
private Dependency dependency;
public void setDependency(Dependency dependency) {
this.dependency = dependency;
}
public String method() {
return dependency.getValue();
}
}
class Dependency {
public String getValue() {
return "RealValue";
}
}
在这个示例中,我们创建了一个被测试的类Example,它依赖于另一个类Dependency。我们使用Mockito模拟Dependency类,并设置了两次调用getValue方法的预期结果分别为"Value1"和"Value2"。然后,我们执行Example类的method方法两次,并验证返回结果是否符合预期。
请注意,这个示例中使用的是Mockito库来进行测试,如果你想了解更多关于Mockito的信息,可以参考腾讯云的Mockito产品介绍页面:Mockito产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云