Frage

Was ist das beste, vorzugsweise frei / Open-Source-Tool für die automatische Erzeugung von Java-Einheit-Tests? Ich weiß, können die Komponententests nicht wirklich den gleichen Zweck wie normale TDD Einheit-Tests welches Dokument dienen und das Design des Systems fahren. Allerdings automatisch generierte Komponententests kann nützlich sein, wenn Sie ein riesiges Vermächtnis Codebasis haben und wissen wollen, ob die Änderungen, die Sie verpflichtet sind, werden unerwünschte, obskuren Nebenwirkungen zu machen.

War es hilfreich?

Lösung

Nicht frei. Nicht Open Source. Aber ich habe festgestellt, AgitarOne Agitator ( http://www.agitar.com/solutions/products /agitarone.html ), um wirklich gut für Unit-Tests automatisch zu erzeugen und auf der Suche nach unerwünschten obskuren Nebenwirkungen

Andere Tipps

Um ehrlich zu sein, habe ich wahrscheinlich nicht tun. Unit-Tests sind isoliert und werden Sie nicht wirklich wissen, ob Sie „unerwünschte, obskure Nebenwirkungen“ haben, weil alles von den anderen Dingen abgeschottete, die die Nebenwirkungen verursachen. Als Ergebnis müssen Sie die Integration oder Systemtests und , die ist nicht etwas, das Sie automatisieren können.

Erstellen Sie ein paar High-Level-End-to-End-Systemtests, die Ihnen ein gewisses Maß an Vertrauen geben und dann Deckung Tests verwenden, um herauszufinden, was Sie verpasst haben, Der Nachteil ist, dass, wenn Fehler nach oben zuzuschneiden, es wird härter, um ihre genaue Ursache zu zeigen, aber der Vorteil ist, dass man die Fehler viel eher sehen wird sein.

Wenn Sie Fehler finden, schreiben Unit-Tests nur für sie. Wie Sie vorwärts zu bewegen, können Sie TDD für die Bits verwenden Sie Refactoring möchten.

Ich weiß, dass dies wahrscheinlich nicht die Antwort ist Sie hören wollen, aber ich habe schon seit vielen, vielen Jahren zu testen und dies ist eine solide Ansatz (obwohl ich würde es kaum nenne den einzigen Ansatz:)

Es ist interessant, aber eine solche generierte Unit-Tests können tatsächlich nützlich sein. Wenn Sie auf einem Legacy-Anwendung arbeiten, wird es oft schwierig sein, richtig, state-of-the-art zu schreiben Unit-Tests.

Eine solche generierten Tests (wenn Sie einen Weg haben sie natürlich zu erzeugen) kann dann sicherstellen, dass das Verhalten von Code während Änderungen intakt bleibt, die dann helfen Sie Refactoring den Code und bessere Tests schreiben .

Jetzt über selbst zu erzeugen . Ich weiß nicht, über jedes magisches Werkzeug, aber Sie können zu erfahren, wie einige Tests in javadocs für Methoden zur JUnit Funktionalität suchen möchten. Dies würde es ermöglichen Ihnen einige einfache Tests zu schreiben. Und ja, es ist wirklich etwas wert.

Zweitens können Sie nur mit der Hand „große“ Tests schreiben. Natürlich wäre dies nicht Unit-Tests per se (keine Isolation, mögliche Nebenwirkungen, etc.), aber guter erster Schritt sein könnte. Vor allem, wenn Sie wenig Zeit und eine Legacy-Anwendung haben.

Bonus-Tipp! Es ist ein ausgezeichnetes Buch "Effektives Arbeiten mit Legacy-Code" mit Beispielen in Java, einschließlich den Techniken direkt in solchen Situationen zu verwenden. Leider würden Sie manuell einige Dinge zu tun haben, aber man würde die sowieso irgend Schritt zu tun hat.

CoView Plugin für Eclipse (http://www.codign.com/products.html) sieht nur den Job. Ich interessiere mich für Tests bei der Erzeugung, der alle Pfade im Code decken, und das scheint es zu tun. Es erzeugt auch die Mocks, die mir Tonnen Zeit sparen sollen.

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