2009-08-24 14 views
1

Puis-je tester mon code GWT côté client sans GWTTestCase? J'ai entendu quelque part (je pense que c'était l'une des conférences de Google IO 2009) qu'ils testaient avec succès leur code avec un faux DOM, dans la JVM et pas en Javascript avec le DOM. Ce serait génial. Le but de ceci serait de gagner de la vitesse (ordre de grandeur). Est-ce que quelqu'un a une idée sur la façon de faire cela? Ma première question sur le débordement de la pile, j'espère que je vais bien faire les choses. Merci. Eugen.Test GWT sans GWTTestCase et DOM

Répondre

3

Vous devriez consulter le Google I/O session par Ray Ryan. Fondamentalement, vous pouvez utiliser le modèle Model/View/Presenter et éliminer tout le code d'accès DOM à la partie 'View'. En faisant cela, vous pouvez créer une vue fictive et tester le modèle/présentateur en utilisant des tests junit standard, en cours d'exécution via le jvm, sans avoir besoin d'un navigateur ou un DOM

+0

Il y aura toujours ** du code ** dans la vue mise en œuvre qui doit être testé. Par exemple, l'utilisateur entre la valeur, la vue crache plus tard cette valeur au présentateur - la même valeur est poussée/tirée vers le présentateur. –

2

Pas tout à fait ce que vous cherchez, mais vous devrait utiliser le modèle Model-View-Presenter. Tout code qui nécessite le DOM devrait aller dans vos classes View, et devrait être aussi bête que possible. La logique complexe va dans vos classes Presenter. Vous pouvez ensuite tester vos classes de présentation sans utiliser de GWTTestCase.

Par exemple, une vue peut avoir une méthode comme:

void setResponseText(String text); 

Votre cas de test de présentateur peut alors ressembler à quelque chose comme:

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