junit按次数mock
时间: 2024-11-17 15:13:14 浏览: 0
Practical-Unit-Testing-with-JUnit-and-Mockito_2013-04_Tomek.Kaczanowsk.pdf
Junit是一个流行的Java单元测试框架,它允许开发者模拟(Mock)对象的行为以便于隔离测试。当需要测试某个对象依赖于另一个复杂或不可控的对象时,Mock可以用来替换那个对象,控制其行为和返回值,从而专注于测试的核心部分。
对于按次数mock,通常是在一些场景下,你需要验证被mock对象的方法被调用了特定的次数。Junit5引入了Mockito库的强大功能,可以设置`doAnswer`, `verify`等期望来跟踪方法调用的次数。例如,你可以这样做:
```java
import org.junit.jupiter.api.BeforeEach;
import org.mockito.Mockito;
// ...
private MyDependency mockDependency; // 假设这是你要mock的对象
@BeforeEach
public void setUp() {
mockDependency = Mockito.mock(MyDependency.class);
}
@Test
public void testMethodThatShouldBeCalledOnce() {
// 配置mock对象,让它在某处被调用一次
Mockito.when(mockDependency.myMethod()).thenReturn(result);
// 测试实际代码
myClassUnderTest.doSomethingWithDependency(mockDependency);
// 验证mock对象被调用了一次
Mockito.verify(mockDependency, Mockito.times(1)).myMethod();
}
```
在这个例子中,`Mockito.times(1)`确保了`myMethod`只被调用了一次。如果你想要更复杂的计数,比如多次或者零次,也可以调整这个条件。
阅读全文