Testing Presenter in MVP GWT-Anwendung

9

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

    
adgfs 07.07.2011, 14:04
quelle

1 Antwort

5

Die generelle Idee der Einheitsprüfung einer solchen Klasse wäre wie für jede andere Klasse:

  • Mock Version der Abhängigkeiten erstellen (Display, EventBus, etc ...)
  • legt Erwartungen fest, was die Dependenzen tun sollen, wenn der Presenter funktioniert
  • Trainiere den Presenter und überprüfe die Erwartungen

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:

    • Dass die Rückrufe eingestellt sind
    • Dass die gesetzten Rückrufe die erwarteten Dinge tun

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:

  • Erstellen Sie einen Moderator mit einer solchen Dummy-Anzeige
  • Verwenden Sie bind, um die Rückrufe festzulegen
  • Verwenden Sie display.fireAddButtonClick (), um einen Benutzer zu simulieren, der auf
  • klickt
  • überprüfen Sie, dass das Ergebnis des Klicks die Auswirkungen von fireAdded gesehen haben

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.

    
phtrivier 09.07.2011, 17:19
quelle

Tags und Links