Junit行为是它为每个测试用例创建一个类的新实例。在每个测试用例之前执行一次@Before
的方式相同。
当junit初始化每个测试用例的全局变量时,为什么我们需要@Before
。
请查看以下示例。 code1和code2之间有什么区别。
例如:
代码1
public class MyTest{
int count = 1;
@Test
public void test1(){
count++;
assertEquals(2, count);
}
@Test
public void test2(){
count++;
assertEquals(2, count);
}
}
代码2
public class MyTest{
private int count;
@Before
public void before(){
count=1;
}
@Test
public void test1(){
count++;
assertEquals(2, count);
}
@Test
public void test2(){
count++;
assertEquals(2, count);
}
}
答案 0 :(得分:1)
您认为不需要它。你的两个例子都是等价的。
@Before的论点是语法上比在字段或构造函数中初始化更漂亮。对于那些不知道JUnit错综复杂的人来说,显而易见的是,为每个测试方法调用设置了Before中的值。
这是Martin Fowler在此事上所说的话: https://martinfowler.com/bliki/JunitNewInstance.html