Frage

Ich gebe zu, dass ich fast keine Erfahrung mit der Unittesting habe. Ich habe es vor einiger Zeit mit Dunit versucht, habe aber aufgegeben, weil es in meiner Bewerbung so viele Abhängigkeiten zwischen den Klassen gab. Es ist eine ziemlich große (ca. 1,5 Millionen Quelllinien) Delphi -Anwendung und wir sind ein Team, das sie pflegt.

Das Testen vorerst wird von einer Person durchgeführt, die sie vor der Veröffentlichung und den Meldungen von Fehler verwendet. Ich habe auch einige GUI-Tests in TestComplete 6 eingerichtet, aber es schlägt häufig aufgrund von Änderungen in der Anwendung fehl.

Fett für Delphi wird als Persistenanz -Framework gegen die Datenbank verwendet. Wir alle sind uns einig, dass Unittesting der richtige Weg ist und planen, eine neue Anwendung in Dotnet mit Eco als Persistenance -Framework zu schreiben.

Ich weiß einfach nicht, wo ich mit unittesting anfangen soll ... irgendwelche guten Bücher, URL, Best Practice usw.?

War es hilfreich?

Lösung

Nun, die Herausforderung bei Unit -Tests ist nicht die Tests selbst, sondern in Schreiben von Testsable Code. Wenn der Code geschrieben wurde nicht Wenn Sie über das Testen nachdenken, werden Sie es wahrscheinlich wirklich schwer haben.

Wie auch immer, wenn Sie refaktor werden können, refaktor, um es prüfbar zu machen. Mischen Sie die Objekterstellung nicht mit der Logik, wenn immer möglich (ich kenne Delphi nicht, aber es könnte ein Abhängigkeitsinjektionsgerüst geben, um dies zu helfen).

Dieser Blog Hat viele gute Einblicke in das Testen. Prüfen Dieser Artikel Zum Beispiel (mein erster Vorschlag basierte darauf).

Versuchen Sie, zuerst die Blattknoten Ihres Codes zu testen, die Klassen, die nicht von anderen abhängen. Sie sollten leichter zu testen sein, da sie keine Mocks benötigen.

Andere Tipps

Das Schreiben von Unit -Tests für Legacy -Code erfordert normalerweise viel Refactoring. Ausgezeichnetes Buch, das dies abdeckt, ist Michael Feather "Effektiv mit dem Legacy -Code arbeiten"

Ein weiterer Vorschlag: Verwenden Sie ein Tool für die Abdeckung von Unit -Tests, um Ihre Fortschritte in dieser Arbeit anzugeben. Ich bin mir nicht sicher, was die guten Deckungstools für Delphi Code sind. Ich denke, das wäre eine andere Frage/ein anderes Thema.

Effektiv mit dem Legacy -Code arbeiten

Einer der beliebtesten Ansätze besteht darin, die Einheitentests beim Ändern des Codes zu schreiben. Alle neuen Codes erhalten Unit-Tests. Für jeden Code, den Sie ändern, schreiben Sie zuerst den Test, überprüfen Sie ihn, ändern Sie ihn, überprüfen Sie ihn erneut und schreiben/beheben Sie alle Tests, die Sie aufgrund Ihrer Änderungen benötigen.

Einer der großen Vorteile einer guten Abdeckung einer guten Unit -Test besteht darin, zu überprüfen, ob die Änderungen, die Sie vornehmen, nicht versehentlich etwas anderes brechen. Mit diesem Ansatz können Sie dies tun, während Sie Ihre Bemühungen auf Ihre unmittelbaren Bedürfnisse konzentrieren.

Der alternative Ansatz, den ich verwendet habe, besteht darin, meine Unit-Tests über Genossenschaften zu entwickeln :)

Wenn Sie mit Legacy -Code arbeiten, sind Mock Objetcs wirklich nützlich, um Unit -Tests zu erstellen.

Schauen Sie sich diese Frage zu Delphi und Mocks an: Was ist Ihre Lieblingsbibliothek in Delphi?

Für .net Unittesting Lesen Sie Folgendes: "Die Kunst des Unit -Tests: mit Beispielen in .NET"

Über beste Pratices:
Was Sie gesagt haben, ist richtig: Manchmal ist es schwierig, Unit-Tests aufgrund der Abhängigkeit zwischen den Klassen zu schreiben ... also schreiben Sie direkt nach oder kurz vor oder kurz vor oder kurz ;-) Die Implementierung der Klassen. Wenn Sie so Schwierigkeiten haben, die Tests zu schreiben, bedeutet dies vielleicht, dass Sie ein Designproblem haben!

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