我不想為每個單元測驗創??建相同的物件,但我不知道如何為多種測驗方法重用物件。
我知道@BeforeAll并且我正在嘗試使用它來初始化一組可以在多個單元測驗中重用的靜態物件。
不知何故,我無法讓它作業。
例如,我可以Date使用初始化程式呼叫一個類,Date(int day, int month, int year)并且我正在嘗試測驗它的equals(Date other)方法。我現在想創建Date我也可以用于其他測驗方法的物件。這就是我正在嘗試的:
public class MyTests {
static Date d1, d2, d3;
@BeforeAll
public void setup() {
d1 = new Date(7, 11, 2021);
d2 = new Date(7, 11, 2021);
d3 = new Date(1, 11, 1990);
}
@Test
public void TestDateEquals() {
Assert.assertTrue(d1.equals(d2));
Assert.assertFalse(d2.equals(d3));
}
}
這會拋出一個NullPointerException. 我怎樣才能讓它作業?
謝謝!
uj5u.com熱心網友回復:
您使用的是什么junit 版本?BeforeAll 適用于 junit5(org.junit.jupiter.api.BeforeAll) 并且斷言是 org.junit.jupiter.api.Assertions.assertTrue
我用junit5運行你的代碼,它在向setup方法添加靜態后作業。您也可以按照@Turing85 建議初始化物件
uj5u.com熱心網友回復:
由@Before...或注釋的任何方法@After...都應該static正常作業。只需將您的setup()方法標記為靜態并運行。這是 JUnit 當前實作的要求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351903.html
