Mock 对象是否会为每次测试重置?
我正在使用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 将失败