Dois-je initialiser les champs de la classe lors de la déclaration de ce genre?
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 dans le setUp() comme ceci?
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
}
}
J'ai tendance à utiliser la première forme parce que c'est plus concis, et me permet d'utiliser final champs. Si je n'ai pas besoin d'utiliser la méthode setUp (), set-up, dois-je encore l'utiliser, et pourquoi?
Précisions:
JUnit va instancier la classe de test une fois par la méthode d'essai. Cela signifie que list
sera créé une fois par test, indépendamment de l'endroit où je le reconnais. Il signifie aussi il y a pas de dépendances temporelles entre les tests. Il semble donc qu'il n'y a pas d'avantages à l'aide de setUp(). Cependant JUnit FAQ a de nombreux exemples d'initialiser un vide de collecte dans le setUp(), donc je me dis il doit y avoir une raison.