为什么每个人都使用@Before而不是@BeforeClass使用initMocks?在我的例子中,我在setup方法中只有一个方法调用,那就是MockitoAnnotations.initMocks。 @BeforeClass甚至更快。
答案 0 :(得分:1)
@BeforeClass,因为名称建议在加载类后运行,并且不存在任何对象。因此,您初始化的所有变量都必须是静态的。因此,如果您想在所有测试用例中重用此静态变量,作为基本设置输入数据,那么您可以使用@BeforeClass提前完成。
@Before非常有用,那么您希望在调用每个测试用例之前重置数据,因此您确定,任何更改输入基础数据的人都不会影响下一个测试的调用。
来到initmock,您可以通过@Mock,@ InjectMocks和使用@RunWith(MockitoJUnitRunner.class)来完成
myL.size > myAr.size = false
在上面的代码中,
@RunWith(MockitoJUnitRunner.class)
public class SampleTest {
@InjectMocks
private ClassA classA;
@Mock
private ClassB classB
// @BeforeClass and other test methods
}