Tôi có nên khởi tạo các trường lớp khi khai báo như thế này không?
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
}
}
Hoặc trong setUp () như thế này?
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
}
}
Tôi có xu hướng sử dụng biểu mẫu đầu tiên vì nó ngắn gọn hơn và cho phép tôi sử dụng các trường cuối cùng. Nếu tôi không cần sử dụng phương thức setUp () để thiết lập, tôi vẫn nên sử dụng nó và tại sao?
Làm rõ:
JUnit sẽ khởi tạo lớp thử nghiệm một lần cho mỗi phương pháp thử nghiệm. Điều đó có nghĩa là list
sẽ được tạo một lần cho mỗi lần kiểm tra, bất kể tôi khai báo nó ở đâu. Nó cũng có nghĩa là không có phụ thuộc thời gian giữa các bài kiểm tra. Vì vậy, có vẻ như không có lợi thế khi sử dụng setUp (). Tuy nhiên, Câu hỏi thường gặp về JUnit có nhiều ví dụ khởi tạo một tập hợp trống trong setUp (), vì vậy tôi nghĩ phải có lý do.