[英]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.