使用@BeforeClass的Mockito initMocks

时间:2018-02-12 15:53:13

标签: mockito

为什么每个人都使用@Before而不是@BeforeClass使用initMocks?在我的例子中,我在setup方法中只有一个方法调用,那就是MockitoAnnotations.initMocks。 @BeforeClass甚至更快。

1 个答案:

答案 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 
}