Hier finden Sie praktische Ratschläge und Erfahrungen, die Menschen in einer ähnlichen Situation gemacht haben.TDD: "Nur Test" -Methoden
Wir verwenden eine BDD/TDD Methode für den Aufbau unserer Software (ziemlich große/komplexe Anwendung) Das Endergebnis ist .. Verhaltensspezifikationen (Gegeben/Wann/Dann Stil) abgeleitet von Geschäftsanforderungen, Unit Tests, die diese widerspiegeln und Code, der die Anforderungen von Tests widerspiegelt.
Unsere Testabteilung hat jedoch vor kurzem damit begonnen, Integrationstests durchzuführen, und verständlicherweise wollen sie unseren (bereits bestehenden) Business-Logik-Code verwenden, um den Teststatus einzurichten und abzubauen (anstatt direkt mit einer Datenbank zu arbeiten) Sie befassen sich hauptsächlich mit dem Testen über die Benutzeroberfläche der Anwendung und möchten nicht den ganzen Tag mit Datenbanken streiten.
Das Problem ist, dass einige der Entity-Repositorys keine Löschmethoden haben, da für diese noch keine Geschäftsanforderungen vorliegen. Viele haben Archive/Wiederherstellen/Backup usw. (und möglicherweise löschen für das Backlog ausstehend).
So jetzt haben wir eine Testabteilung. Anforderung zum Löschen (aber eine, die mit Business-User Stories konfligiert)
Also .... meine Frage ist ... wenn ich Methoden speziell für die Testabteilung hinzufügen würde ... was ist die beste Art der Handhabung diese. Ich verstehe, dass dies in "TDD Utopia" allgemein als schlechte Praxis angesehen wird, aber realistisch gesehen, wie haben Sie sich mit dieser Art von Konflikt auseinandergesetzt?
Die ersten Gedanken, die ich gehabt haben, sind entweder die Verwendung Namensgebung ...
void TestOnly_Delete(Guid id){}
... Attribute ...
[TestOnly]
void Delete(Guid id){}
... oder Compiler-Direktiven ...
#if TESTBUILD
void Delete(Guid id){}
#endif
So können Entwickler mindestens wissen, TestOnly-Methoden nicht aufzurufen, und Testmethoden werden maximal nicht in Produktionsaufstellungen bereitgestellt.
... oder einfach nur betrügen und eine User Story hinzufügen, dass es so ;-)
Jede Erfahrung oder Ratschläge dankbar geschätzt zu verwalten?
Vielen Dank im Voraus.