Ich habe zwei Codestücke gesehen. Beim ersten habe eine Testklasse und eine Testobjektfactory:
Bei diesem Code werden feste Testobjekte durch TestFactories erzeugt. Die Testobjekte können wiederverwendet werden und haben dann immer den gleichen Namen, Vornamen usw. Ich habe wenig Änderungsaufwand, wenn zur Person noch ein Feld dazu kommt bzw. ändert, da die Objekterzeugung an einer zentralen Stelle ist.
Das zweite Codestück wäre z.B.:
Testobjekte werden in den Tests erzeugt, können immer anders aussehen. Hier kann schnell die übersicht flöten gehen, Personen können in anderen Test komplett anders aussehen usw.
Ich bin geteilter Meinung. Was haltet ihr davon? Wo seht Ihr Vorteile und Nachteile?
Java:
class PersonTest {
private Person person = PersonTestFactory.create();
private Person personWithNoCity = PersonTestFactory.withNoCity();
@Test
public void shouldHaveExpectedName() {
assertEquals("bundy", this.person.getName());
}
@Test
public void shouldHaveNoCity() {
assertEquals("", this.person.getCity());
}
...
}
class PersonTestFactory {
static Person create() {
Person person = new Person();
person.setName("bundy");
person.setFirstName("al");
person.setCity("Entenhausen");
return person;
}
static Person withNoCity() {
Person person = create();
person.setCity("");
return person;
}
}
Bei diesem Code werden feste Testobjekte durch TestFactories erzeugt. Die Testobjekte können wiederverwendet werden und haben dann immer den gleichen Namen, Vornamen usw. Ich habe wenig Änderungsaufwand, wenn zur Person noch ein Feld dazu kommt bzw. ändert, da die Objekterzeugung an einer zentralen Stelle ist.
Das zweite Codestück wäre z.B.:
Java:
class PersonTest {
@Test
public void shouldHaveExpectedName() {
Person person = new Person();
person.setName("bundy");
assertEquals("bundy", person.getName());
}
@Test
public void shouldHaveNoCity() {
Person person = new Person();
person.setName("bundy");
person.setCity("");
assertEquals("", person.getCity());
}
...
}
Ich bin geteilter Meinung. Was haltet ihr davon? Wo seht Ihr Vorteile und Nachteile?
Zuletzt bearbeitet: