ฉันควรเริ่มต้นฟิลด์คลาสเมื่อประกาศเช่นนี้หรือไม่?
public class SomeTest extends TestCase
{
private final List list = new ArrayList();
public void testPopulateList()
{
// Add stuff to the list
// Assert the list contains what I expect
}
}
หรือใน setUp () แบบนี้?
public class SomeTest extends TestCase
{
private List list;
@Override
protected void setUp() throws Exception
{
super.setUp();
this.list = new ArrayList();
}
public void testPopulateList()
{
// Add stuff to the list
// Assert the list contains what I expect
}
}
ฉันมักจะใช้แบบฟอร์มแรกเพราะมันกระชับกว่าและช่วยให้ฉันใช้ฟิลด์สุดท้ายได้ หากฉันไม่จำเป็นต้องใช้เมธอด setUp () ในการตั้งค่าฉันจะยังคงใช้มันอยู่หรือไม่เพราะเหตุใด
ชี้แจง:
JUnit จะสร้างอินสแตนซ์คลาสทดสอบหนึ่งครั้งต่อวิธีการทดสอบ วิธีlist
นี้จะถูกสร้างขึ้นหนึ่งครั้งต่อการทดสอบไม่ว่าฉันจะประกาศไว้ที่ใดก็ตาม นอกจากนี้ยังหมายความว่าไม่มีการพึ่งพาชั่วคราวระหว่างการทดสอบ ดูเหมือนว่าการใช้ setUp () จะไม่มีข้อดี อย่างไรก็ตามคำถามที่พบบ่อยของ JUnit มีตัวอย่างมากมายที่เริ่มต้นคอลเลคชันว่างใน setUp () ดังนั้นฉันคิดว่าต้องมีเหตุผล