Testen delegierter Funktionen
-
Ich refaktorisiere mein Projekt.
In einer GUI Klasse wird auf eine DB zugegriffen.
Beispiel: PersonDB.AddPerson("Tester")Ich möchte das Design so umstellen das in der GUI-Klasse
mit dem Model gesprochen wird und das Model mit der Datenbank kommuniziert.
Person.AddPerson("Tester") -> PersonDB.AddPerson("Tester")Ich habe einen Test für PersonDB.AddPerson("Tester").
Wenn ich AddPerson in Person Testen möchte wie stelle ich das am elegantesten an ?- code verdoppeln ?
- aus PersonDBTest.AddPersonTest -> PersonTest.AddPersonTest ?
- ???Ich möchte eine hohe Testabdeckung erreichen und sicherstellen das spätere Änderungen berücksichtigt werden.
Ich möchte mir möglichst die DB init und aufräumarbeiten sparen.
Danke für alle Anregungen
-
DRY lässt sich in UnitTests nicht vermeiden, ist aber auch nicht tragisch, da man ja jede Methode separat und unabhängig testen sollte.
Aus dem Gesichtspunkt des UnitTests heraus sieht es nur eine Methode hier, und eine da, das es intern nur durch delegiert ist völlig irrelevant da nur das Ergebnis zählt und geprüft wird, nicht der weg.