Devo inicializar campos de classe em declarações como esta?
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
}
}
Ou em setUp () assim?
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
}
}
Costumo usar o primeiro formulário porque é mais conciso e me permite usar os campos finais. Se eu não precisar usar o método setUp () para instalação, ainda devo usá-lo e por quê?
Esclarecimento: O
JUnit instancia a classe de teste uma vez por método de teste. Isso significa list
que será criado uma vez por teste, independentemente de onde eu o declare. Isso também significa que não há dependências temporais entre os testes. Portanto, parece que não há vantagens em usar setUp (). No entanto, a FAQ do JUnit tem muitos exemplos que inicializam uma coleção vazia em setUp (), então acho que deve haver um motivo.