示例代码:
public class Count {
static int count;
public static int add() {
return ++count;
}
}
我希望test1和test2完全分开运行,以便它们都通过。我怎么能完成那个?我的IDE是Intellij IDEA。
public class CountTest {
@Test
public void test1() throws Exception {
Count.add();
assertEquals(1, Count.count);//pass.Now count=1
}
@Test
public void test2() throws Exception {
Count.add();
assertEquals(1, Count.count);//error, now the count=2
}
}
假设test1在test2之前运行。
这只是一个简化的代码。实际上代码更复杂,所以我不能只在count=0
方法中生成@after
。
答案 0 :(得分:2)
没有自动重置类中所有静态变量的方法。这就是为什么你应该重构你的代码以停止使用静态的一个原因。
您的选择是:
3和4是很多工作,没有太大的收获。如果您开始尝试并行运行测试,除了重构之外的任何解决方案仍然会给您带来问题。
答案 1 :(得分:1)
在每次测试前使用@Before
注释重新初始化变量:
@Before
public void resetCount(){
Count.count = 0;
}