Soll ich Klassenfelder bei einer solchen Deklaration initialisieren?
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
}
}
Oder in setUp () so?
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
}
}
Ich neige dazu, das erste Formular zu verwenden, weil es prägnanter ist und es mir ermöglicht, endgültige Felder zu verwenden. Wenn ich nicht brauchen , um den Setup () -Methode für Set-up zu verwenden, soll ich es immer noch verwenden, und warum?
Erläuterung:
JUnit instanziiert die Testklasse einmal pro Testmethode. Das bedeutet list
, dass einmal pro Test erstellt wird, unabhängig davon, wo ich es deklariere. Dies bedeutet auch, dass zwischen den Tests keine zeitlichen Abhängigkeiten bestehen. Die Verwendung von setUp () scheint also keine Vorteile zu haben. Die JUnit-FAQ enthält jedoch viele Beispiele, die eine leere Sammlung in setUp () initialisieren. Ich denke, es muss einen Grund geben.