Ich habe diese Klasse geschrieben, die einige Dinge tut (vielleicht ist dies ein Verstoß gegen das Prinzip der Einzelverantwortung). Mir ist jetzt klar, dass ein anderer Teil des Projekts ein Stück dieser Logik benötigt, und ich werde es aufzeigen, indem ich eine Klasse aus meinem ursprünglichen System im Test extrahiere.
Ich erwarte in der Lage , dies zu tun , ohne dass Testcode ändern zu müssen, aber wenn ich fertig, könnte man argumentieren , dass der Test nicht um eine Einheit mehr Test. Es wird die ursprüngliche Klasse und die Klasse testen, die ich extrahiert habe. Mit anderen Worten, ich habe einen Testfall, aber zwei Systeme im Test.
Soll ich meinen Testcode überarbeiten, nachdem ich fertig bin? IE: Erstellen Sie einen ExtractedClassTest und verschieben Sie alle relevanten Tests von OriginalClassTest hinein? Dies scheint ein wenig riskant zu sein: Ich verliere möglicherweise etwas Deckung, es ist möglicherweise nicht so einfach wie das Verschieben eines Tests, und ich würde am Ende einen Testcode umschreiben, von dem ich weiß, dass er funktioniert, aber möglicherweise nicht mehr. etc.
Wenn ich hingegen den OriginalClassTest unverändert lasse, kann ich sehen, dass dies ein Problem bei der Testwartung ist. Es wird etwas verwirrend sein, herauszufinden, wo sich die ExtractedClass-Tests befinden. Ihr erster Eindruck wird sein, dass es nicht existiert. Im Laufe der Zeit könnte dies bei vielen Refactorings von Seriencode zu einem ernsten Problem werden.
Ich bin neu bei TDD, daher hätte ich gerne einen Expertenrat. Vielen Dank!
quelle