我正在使用Mockito 框架在我的 JUnit 测试中创建 Mock 对象。每个模拟都知道它调用了哪些方法,所以在我的测试中我可以编写
verify(myMock, atLeastOnce()).myMethod();
我想知道这种内部模拟知识是否会在我的测试中持续存在?verify
如果它确实持续存在,那么在两次测试中使用相同的方法时我可能会得到误报。
代码示例
@RunWith(MockitoJUnitRunner.class)
public class EmrActivitiesImplTest {
@Mock private MyClass myMock;
@Before
public void setup() {
when(myMock.myMethod()).thenReturn("hello");
}
@Test
public void test1() {
// ..some logic
verify(myMock, atLeastOnce()).myMethod();
}
@Test
public void test2() {
// ..some other logic
verify(myMock, atLeastOnce()).myMethod();
}
}
模拟状态保持不变 - test2 无论如何都会通过,因为 test1 的验证方法通过了
模拟状态已重置 - 如果未调用 myMock.myMethod(),test2 将失败