Ich habe eine einfache Anwendung und möchte sie testbar machen. Ich bin neu in diesem Bereich. Hier ist ein einfacher Moderator, der diesen Code berücksichtigt. Könnten Sie mir Ratschläge geben oder ein Beispiel geben, wie Sie ihn testen?
%Vor%Bearbeiten:
Was ist der Presenter, laden Sie die Anfangsdaten von db, fügen Sie zwei Buttons hinzu und löschen Sie sie. Wenn add gedrückt wird, wird ein neues Formular geladen und der Benutzer kann Daten eingeben und in der Datenbank speichern. Löschen Sie die Schaltfläche Löschen Sie einfach eine Person aus db.
Danke
Die generelle Idee der Einheitsprüfung einer solchen Klasse wäre wie für jede andere Klasse:
Allerdings gibt es ein paar Probleme mit Ihrer Version des Presenter:
Die loadDbData () -Methode wird nicht angezeigt, aber ich nehme an, dass dies bedeutet, dass der Presenter auch Zugriff auf eine andere Komponente hat, die das Abrufen durchführt. Kann diese Komponente in einer Abhängigkeit abgelenkt werden, und verspottet den Rest?
Dann gibt es das Testen von bind (). Die einzige Verantwortung Ihres Presenters bei dieser Methode besteht darin, Rückrufe für einige vom Display bereitgestellte Tasten einzurichten. Was Sie testen möchten, ist beides:
Ein paar Ideen, um mit dem späteren zu helfen:
Sie können die Kopplung zwischen Presenter und Button reduzieren. Wenn möglich, ändern Sie das Display-Interface von:
%Vor%bis
%Vor%Dies bedeutet, dass Ihr Presenter kein Anzeigeobjekt verwenden muss, das den tatsächlichen BUtton zurückgibt
Sie können den Callback-Inhalt auf den Aufruf einer einzelnen Methode reduzieren, die Sie anschließend isoliert testen können
%Vor%Wenn Sie wirklich überprüfen möchten, ob die Callbacks richtig gesetzt sind, können Sie eine Dummy-Implementierung der Display-Klasse verwenden, die Ihnen eine Liste aller Callbacks zur Verfügung stellt und Sie sie aufrufen lassen.
%Vor%Dann würde dein Test:
Diese Art von Klasse (die meistens andere Klassen aneinander klebt) kann schwer zu testen sein; Irgendwann, wenn die anderen Klassen gründlich getestet werden, kann es etwas kontraproduktiv werden, sich auf die Klebstoffe zu konzentrieren, anstatt auf die Klebstoffe.
Ich hoffe, das hilft.
Tags und Links gwt java unit-testing mvp