Frage

Ich weiß, dass es möglich ist, mit dem Assistenten innerhalb von JUNIT einen TestCase oder Testsuite zu erstellen. Wie synchronisiert man den Code, nachdem die Klasse unter dem Test unter dem Test geändert wurde, wie z. B. Methodensignaturänderungen oder neu hinzugefügte Methoden. Ich möchte, dass meine Testcases diese geänderten Methoden/Parameter/Methodensignaturen in meinen Testcasen synchronisieren (entfernen oder hinzufügen).

Ich habe versucht, ohne Erfolg bei Google zu suchen. Vielleicht gibt es ein Eclipse -Plugin dafür?

War es hilfreich?

Lösung

Tests mit einer 1: 1-Beziehung zur Struktur des Produktionscode sind ein Testgeruch. Es ist viel besser, dass die Tests als Spezifikation des Verhaltens des Systems (~ ein Test pro Verhalten) geschrieben werden, anstatt Tests basierend auf dem Produktionscode (~ ein Test pro Methode) zu erstellen.

Zitiert aus http://blog.daveastels.com/files/bdd_intro.pdf

Wenn Sie erkennen, dass es darum geht, Verhaltensweisen anzugeben und keine Tests zu schreiben, verschiebt sich Ihr Standpunkt. Plötzlich ist die Idee, eine Testklasse für jeden Ihrer Produktionsklassen zu haben, lächerlich einschränkend. Und der Gedanke, jede Ihrer Methoden mit einer eigenen Testmethode (in einer 1: 1-Beziehung) zu testen, ist lächerlich.

Andere Tipps

Wie bereits erwähnt, werden Refactorings wie Umbennen oder Moves in den Testfällen automatisch reflektiert, solange Sie mit dem Eclipse -Werkzeug und nicht durch manuell umbenennen.

In Bezug auf neue Methoden ist es unmöglich, Tests automatisch zu generieren. Natürlich gibt es einige Ausnahmen für automatisch generiertes Code, bei denen Sie die Generation steuern und bei denen Sie auch Testfälle generieren können, aber für den "normalen" manuellen Code war es am besten, Stubs (leere Methoden) zu liefern und die Verwendung Darin?

Ein besserer Ansatz ist es, zu verfolgen Codeabdeckung Verwenden eines Tools wie z. Cobertura oder Emma, was zufällig eine hat Schönes Sonnenfinsternis -Plugin Dadurch können Sie in Ihrem Quellcode sehen, welcher Code durch Tests abgedeckt wird und welche nicht. Dies ist dann Ihr Bericht darüber, wo Sie weitere Tests benötigen.

Wenn Sie Methodensignaturen mithilfe des automatisierten Refactoring ändern, werden die Testfälle - und alle anderen Code, die die Methode aufrufen - automatisch aktualisiert.

Bei neu hinzugefügten Methoden weiß ich keine Möglichkeit, die Testklasse automatisch zu aktualisieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top