我想標題可能有點混亂,希望您在解釋后能理解我的問題。
我想用java撰寫一個JUnit測驗類。我在建構式中創建了一個空串列。假設一個測驗方法將一個元素添加到該串列中,如果該串列中有 1 個元素,則回傳 true。如果串列為空,另一個測驗方法只回傳 true。測驗是否相互獨立?
uj5u.com熱心網友回復:
這取決于測驗框架、版本和設定。
在 JUnit 4 中,一個類的單個實體用于運行該類中的所有測驗。這意味著是的,測驗記住了。
在 JUnit 5 中,默認情況下會為每個測驗創建一個新實體。這包括引數化測驗——這就是為什么(默認情況下)引數工廠方法需要是靜態的,因為還沒有實體提供引數。您可以使用@TestInstance(Lifecycle.PER_CLASS)更改行為以再次對所有測驗使用單個實體。
正如 QBrute 在評論中所說,測驗應該獨立作業。這意味著如果您的測驗類保持狀態,則應重置該狀態。JUnit 5 使用@BeforeEachand @AfterEach。最好使用@BeforeEach,因為狀態重置失敗不會導致另一個測驗失敗。
所以:
@BeforeEach
void initializeList() {
myList = new ArrayList<>();
// now every test has its own fresh list
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481708.html
上一篇:EMR筆記本訪問HDFS
下一篇:如何用玩笑測驗隨機顏色生成器
