最佳实践:在 setUp() 中或在声明时初始化 JUnit 类字段?
我应该像这样在声明时初始化类字段吗?
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 将为每个测试方法实例化一次测试类。这意味着每个测试将创建一次,无论我在哪里声明它。这也意味着测试之间没有时间依赖关系。因此,使用setUp()似乎没有优势。但是,JUnit FAQ中有许多在setUp()中初始化空集合的示例,因此我认为一定有原因。list