Devo inizializzare i campi della classe in una dichiarazione come questa?
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
}
}
O in setUp () come questo?
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
}
}
Tendo a utilizzare il primo modulo perché è più conciso e mi consente di utilizzare i campi finali. Se non ho bisogno di usare il metodo setUp () per la configurazione, dovrei comunque usarlo, e perché?
Chiarimento:
JUnit creerà un'istanza della classe di test una volta per metodo di test. Ciò significa list
che verrà creato una volta per test, indipendentemente da dove lo dichiaro. Significa anche che non ci sono dipendenze temporali tra i test. Quindi sembra che non ci siano vantaggi nell'usare setUp (). Tuttavia le FAQ di JUnit hanno molti esempi che inizializzano una raccolta vuota in setUp (), quindi immagino che ci debba essere un motivo.