Delegovaný přístup
V komplexnějších případech, kdy je logika testu složitější a dochází k opakovanému vytváření stejného přípravku, vhodné je použít takzvaný delegován přístup vytvoření testovacího přípravku. Jde o provádění samostatných metod, které během jejich volání vytvoří testovací přípravek. Tyto pomocné metody jsou volané přímo z testovacích metod. Tyto metody mohou být tak voláno několika testy nezávisle, čímž je zajištěna přehlednost kódu a dojde i k odstranění duplicit v kódu testovací třídy.
public Objednavka vytvorenieObjednavky() {
Objednavka objednavka = new Objednavka(123);
objednavka.setStav("nová");
Kniha kniha1 = new Kniha(456);
Kniha kniha2 = new Kniha(789);
objednavka.pridejPolozku(kniha1);
objednavka.pridejPolozku(kniha2);
return objednavka;
}
public Objednavka vymazatPolozkyObjednavky() {
Objednavka objednavka = vytvoreniObjednavky();
objednavka.vymazatPolozky();
return objednavka;
}
@Test
public void testPripravek2() {
//setup
Objednavka objednavka = vytvoreniObjednavky();
//exercise + verify
assertEquals("nová", objednavka.getStav());
}
@Test
public void testPripravek3() {
//setup
Objednavka objednavka = vymazatPolozkyObjednavky();
//exercise + verify
assertEquals(0, objednavka.getSeznam().size());
}