2009-08-24 4 views
1

Kann ich meinen clientseitigen GWT-Code ohne GWTTestCase testen? Ich habe irgendwo gehört (ich glaube, es war eine der Google IO 2009 Konferenzen), dass sie ihren Code mit einem falschen DOM erfolgreich getestet haben, in der JVM und nicht in Javascript mit dem DOM. Das wäre brillant. Der Sinn davon wäre, Geschwindigkeit zu gewinnen (Größenordnung). Hat jemand eine Idee, wie man das macht? Meine erste Frage zum Stapelüberlauf, hoffe ich mache das richtig. Danke. Eugen.GWT-Test ohne GWTTestCase und das DOM

Antwort

3

Sie sollten die Google I/O session von Ray Ryan überprüfen.

Grundsätzlich können Sie das Model/View/Presenter-Muster verwenden und den gesamten DOM-Zugriffscode auf den Abschnitt "View" abstrahieren. Auf diese Weise können Sie eine Modellansicht erstellen und das Modell/den Moderator mithilfe von Junit-Standardtests testen, die über den JVM ausgeführt werden, ohne dass ein Browser oder ein DOM erforderlich ist.

+0

Es wird ** sein noch einige ** Code in der Ansicht Implementierung, die getestet werden muss. Zum Beispiel gibt der Benutzer einen Wert ein, die Ansicht spult später diesen Wert für den Präsentator auf - derselbe Wert wird an den Präsentator gedrückt/gezogen. –

2

Nicht ganz das, wonach Sie suchen, aber Sie sollte das Model-View-Presenter-Muster verwenden. Jeder Code, der das DOM benötigt, sollte in Ihren View-Klassen enthalten sein und sollte so dumm wie möglich sein. Komplexe Logik wird in Ihren Presenter-Klassen verwendet. Sie können dann Ihre Präsentationsklassen testen, ohne ein GWTTestCase zu benötigen.

ZB könnte eine Ansicht, die ein Verfahren wie haben:

void setResponseText(String text); 

Fall Ihr Moderator Test kann dann wie etwas aussehen:

void testSayHi() { 
    expect(mockView.setResponseText("hi there")); 
    replayMocks(); 
    presenter.sayHi(); 
    verifyMocks(); 
}