我应该像这样在声明时初始化类字段吗?
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
}
}
我倾向于使用第一种形式,因为它更简洁,并允许我使用 final 字段。如果我没有使用 需要的 setUp ()方法进行设置,那么我应该继续使用它吗? 为什么?
澄清:
JUnit 将为每个测试方法实例化一次测试类。这意味着 list
将在每个测试中创建一次,而不管我在哪里声明它。这也意味着测试之间没有时间依赖关系。因此,使用 setUp ()似乎没有什么好处。然而,JUnit FAQ 中有许多例子在 setUp ()中初始化一个空集合,所以我认为一定有原因。