簡體   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