java正在对MockitoAnnotations返回的对象调用close()。OpenLocks(对象)是必需的吗?
我希望对MockitoAnnotations返回的对象调用close()是必需的。OpenLocks(对象)?如果答案是肯定的,我为什么要叫它? 假设我们有这样一个例子:
public class MockitoAnnotationsOpenMocksTest {
@Mock
private Foo var;
@BeforeMethod
public void before() {
MockitoAnnotations.openMocks(this);
}
@Test
public void foo() {
Mockito.when(var.name()).thenReturn("foo");
System.out.println("test foo" + ", var name " + var.name());
}
@Test
public void foo2() {
System.out.println("test foo2" + ", var name " + var.name());
}
private class Foo {
String name() {
return "";
}
}
}
使用testng结果运行它是:
[RemoteTestNG] detected TestNG version 6.14.2
test foo, var name foo
test foo2, var name null
PASSED: foo
PASSED: foo2
PASSED: foo2
每次调用@BeforeMethod Mockito注释时都会出现AFAIK。openMocks(本);再次初始化var对象,所以在每次测试方法之后使用close()方法没有任何意义
# 1 楼答案
The documentation说:
所以不,如果你不关闭模拟,测试在任何情况下都不会失败,但在某些情况下这是必要的,所以任何通用测试框架都应该确保
close()