Ich habe eine Reihe von C# Integrationstests geschrieben mit dem Given/When/Then-Stil von Gurke popularisiert. Ich benutze ein Framework, das im Prinzip genauso funktioniert wie NBehave.Best Practices/Ideen zum Einrichten des Systemstatus beim Testen der Integration?
Ein wiederkehrendes Problem, mit dem ich konfrontiert bin, ist das Problem der Einrichtung und Verkabelung aller für den Integrationstest erforderlichen Anwendungszustände. Die meisten meiner Tests in etwa so aussehen:
Given an empty system And a new NetworkServer And a new ServerDatabase And a new Eventlogger And a new Networkconnection And a new LoggingClient When the client logs a new event Then it should appear in the server database
Wie Sie die Aktion und Behauptung sind einzelne Linien zu sehen, aber ich habe 6 Zeilen ‚Verdrahtung‘. Fast jeder Test, den ich habe, wiederholt diese 6 Zeilen.
Das scheint mir ein Code-Geruch, aber ich bin mir nicht sicher, wie ich damit umgehen soll. Ich könnte die 6 Zeilen zu einem einzigen umstrukturieren (Given "a valid system..."
oder so), aber das scheint zu weit zu gehen und ich würde zu viele Informationen verstecken.
Ich würde mich über alle Gedanken von anderen mit mehr Erfahrung auf diesem Gebiet freuen. Danke vielmals.
Hrm ... Vielen Dank für die Eingabe. Ich muss zugeben, dass ich das Basisklassenmodell nicht mag, da es bedeutet, dass die Hälfte des Setup-Codes im Basiskonstruktor in einer komplett anderen Datei versteckt ist ... immer gut, um verschiedene Blickwinkel zu sehen. +1 –