2010-01-16 6 views
1

J'ai un code serveur écrit en Python, et j'ai un code client écrit avec GWT. Maintenant, je veux lancer des tests d'automatisation sur le GWT par rapport aux données du serveur Python. D'après ce que j'ai cherché, les gens recommandent d'utiliser le sélénium, mais je préfère avoir un test GWT qui a plus de visibilité sur le code client. De cette façon, je peux vérifier la base de données locale et toutes les données qui ne sont pas exposées à l'interface utilisateur.Test GWT avec serveur externe

Aussi à ce stade, je ne suis pas trop inquiet de l'aspect DOM, la mise en page, et les autres choses de l'interface utilisateur.

Y a-t-il un moyen de faire fonctionner GWTTest avec un serveur externe?

J'ai essayé de rechercher la solution, ou les gens avec le même problème, mais je n'ai pas pu trouver un. Si cette question a déjà été posée, je m'en excuse.

Merci, KOkon.

Répondre

0

Vous pouvez utiliser le framework GWTTest pour intégrer le test de certains composants GWT qui appellent le serveur. Mais les tests ne pourront pas communiquer directement avec le serveur. Si vous avez besoin de vos tests pour configurer l'état sur le serveur, je crains que vous ayez besoin d'écrire des "serveurs de RPC" ou des servlets ou des applications similaires "à des fins de test seulement".

Cela dit, je (probablement comme ceux qui ont suggéré Sélénium) recommande trois types de tests:

  1. tests unitaires pour les composants serveur et GWTTests unitaires pour les composants clients,
  2. tests d'intégration pour les tests interaction du code serveur avec la base de données, etc.
  3. Tests de réception du sélénium, qui sont des "boîtes noires" - ils n'ont pas accès aux entrailles des composants GWT.
+0

Existe-t-il un moyen de créer un type de serveur RPC "proxy" capable de rediriger la requête vers mon backend? De cette façon, le code du serveur RPC doit juste être implémenté une fois. Je n'aime pas l'idée d'avoir à dupliquer (même si ce n'est pas entièrement) la fonctionnalité du backend. Merci pour la réponse. – KOkon

+0

J'utilise Java sur le côté serveur. Dans mes tests d'acceptation, je peux faire une requête GET à l'URL http:/localhost/app/deleteAllDataForTesting? Really = yes Mon serveur reconnaît cet appel et passe par le processus de suppression des données et de réinitialisation de l'état du serveur. Ce n'est pas un RPC, juste un HTTP normal auquel ma servlet peut répondre. Cela semble fonctionner plutôt bien. – John

+0

Merci beaucoup John pour les conseils. Je vais l'essayer sur mon système. – KOkon

0

Ce que vous pouvez faire est de créer une servlet proxy qui démarre dans l'instance de Jetty embarquée GWTTestCase. Ce proxy pourrait transférer tous les appels vers de vrais services en Python.

Questions connexes