JUnit Test Class中未分配Java变量

时间:2017-12-29 02:30:00

标签: java junit

我在项目中发现了一些奇怪的东西。我使用JUnit创建一个测试类来测试我的服务层。服务层本身不是我的问题。我的问题是,我不知道为什么在我的第一个测试方法中为一个int变量赋值后,然后当我尝试在第二个测试方法中使用该值时,变量值为{{1} }

因为我使用0

而按顺序执行
@FixMethodOrder(MethodSorters.NAME_ASCENDING)

我也尝试将int id; @Test public void firstMethodToTest() { id = 10; System.out.println(id); // here printed correctly 10 } @Test public void secondMethodToTest() { System.out.println(id); // here printed 0 } 更改为int,但它不再返回Integer而不是null。 我想知道在这样的JUnit Test类中,Java变量的行为是否不同。 感谢。

1 个答案:

答案 0 :(得分:2)

感谢@Ivan给我一个答案的线索

对于每个测试方法(使用@Test注释的方法),将创建一个新的YourTestClass实例。这是Junit的行为。

因此,重点是如果要对所有测试方法使用类成员,只需将变量声明为static即可。就我而言:static int id;