Einige Programmierer in meinem Team schreiben manchmal Komponententests, die die Methode aufrufen, erhalten das Ergebnis, vergessen aber, die richtigen Assert
-Methoden aufzurufen, um tatsächlich zu überprüfen, was passiert.
Ich habe mich gefragt, ob es irgendeine Konfiguration gibt, die ich machen kann, um MSTest dazu zu zwingen, den Test nicht zu bestehen, wenn keine Verifizierung durchgeführt wird. Ich erinnere mich, dass ich in DUnit so etwas gesehen habe, aber ich konnte es in Visual Studio nicht finden.
Schau dir Test-Lint von Roy Osherove und Co. an. Es ist statische Code-Analyse für Test-Code.
Ich habe es einmal ausprobiert, als es für die Öffentlichkeit Alpha / Beta war .. war ziemlich brav. Allerdings habe ich dieses spezielle Bedürfnis nicht ausprobiert. Ich denke nicht, dass MSTest oder die meisten Unit-Test-Frameworks gegen diese Standard-Version schützen werden.
Auch AQUAS hat einen gültigen Kommentar .. Bildung könnte besser funktionieren als Inspektion und Stick. Sie können sogar eine benutzerdefinierte Regel erstellen, um Rogue-Behauptungen einzufangen. Überprüfen Sie das Tool.
Auf der Startseite des Tools
Welche Probleme erkennt es?
Derzeit findet Test Lint eine Reihe von häufigen Problemen:
* Missing behauptet in Ihren Tests
Ich habe noch nie von einem solchen Feature gehört. Unit Testing ohne Asserts testet einfach, dass keine Fehler geworfen werden, in welchem Fall in der Regel jedes Mal passieren würde.
Ich bin ziemlich überrascht, dass Ihre Programmierer tatsächlich Tests ohne Asserts schreiben, das scheint sehr unprofessionell zu sein. Ich würde vorschlagen, sie darauf zu lenken, ein paar Online-Kurse über Test Driven Development zu lesen, wo Sie normalerweise einen Test schreiben, um zu scheitern und dann die Programmieränderungen vorzunehmen, damit sie bestanden werden (in diesem Fall würde Assert.IsTrue (true) nicht einmal beginnen) Sinn machen.
Geben Sie auch die Vorlage an:
%Vor%Ich würde sehr empfehlen, den Kauf für diesen Screencast zu tätigen: Ссылка
Es bietet eine gute Idee, wie man Komponententests schreibt und TDD richtig folgt.
Tags und Links unit-testing mstest