繁体   English   中英

Java变量未在JUnit测试类中分配

[英]Java variable not assigned in JUnit Test Class

我在项目中发现了一些奇怪的东西。 我使用JUnit创建一个测试类来测试我的服务层。 服务层本身不是我的问题。 我的问题是,我不知道为什么在第一个测试方法中将一个值分配给int变量后,当我尝试在第二个测试方法中使用该值时,变量值是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而不是0 我想知道在这样的JUnit Test类中,Java变量的行为是否不同。 谢谢。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM