2010-01-19 3 views
2

Je voudrais être en mesure d'exécuter un ensemble de tests unitaires en les reliant à mon application (par exemple, je veux être capable de cliquer sur un lien et de le faire exécuter un ensemble de tests jUnit). Le problème est que GWT et jUnit ne semblent pas être conçus pour cette capacité - seulement au moment de la construction, vous pouvez exécuter les tests.jUnit testing avec Google Web Toolkit

Je voudrais être en mesure d'inclure mon code de test dans mon application et, à partir de onModuleLoad par exemple, exécuter un ensemble de tests.

J'ai essayé juste instancier un objet de test:

StockWatcherTest tester = new StockWatcherTest(); 
tester.testSimple(); 

mais je reçois: Aucun code source est disponible pour le type com.google.StockWatcher.client.StockWatcherTest; même si j'inclus le module spécifiquement.

Quelqu'un connaitrait-il un moyen de le faire? Je veux juste pouvoir afficher les résultats du test dans le navigateur.

Répondre

1

Si vous essayez de tester des éléments d'interface utilisateur dans GWT en utilisant JUnit, vous ne pouvez malheureusement pas le faire. Le test JUnit est limité aux tests côté client RPC et non-UI. Voir this thread pour une excellente discussion sur ce que vous pouvez et ne pouvez pas faire avec les tests de GWT jUnit. Si vous n'essayez pas de tester les éléments de l'interface utilisateur, vous essayez plutôt d'injecter votre code RPC ou votre logique côté client avec des valeurs de test (d'où la raison pour laquelle vous souhaitez pouvoir cliquer sur un lien et exécuter un ensemble de JUnit tests), alors vous devriez suivre le guide suivant de testearly.com: Testing GWT with JUnit. En bref, vous devez vous assurer que la méthode que vous testez n'inclut aucun élément d'interface utilisateur et si la méthode que vous testez est de nature asynchrone, vous devez ajouter un temporisateur.

Dans 2,0, HTMLUnit a été ajouté. Vous voudrez peut-être utiliser ceci au lieu de lancer un navigateur chaque fois que vous souhaitez tester.

Questions connexes