dbourdette / fun-reco

0 stars 0 forks source link

Tests fonctionnels d'interface avec Geb #14

Closed dbourdette closed 12 years ago

dbourdette commented 12 years ago

La librairie Geb (une parmi d'autres) permet d'écrire des tests en se plaçant derrière un navigateur.

Les détails sur l'intégration avec grails sont sur la doc de Geb

On utilise plutôt geb-junit4.

A faire :

On pourra ainsi facilement rajouter des tests par la suite.

boutayna commented 12 years ago

Je m'excuse pour cet enorme commit ! mais je retrouve plus le .gitignore !!

dbourdette commented 12 years ago

Voici ce que j'ai fait :

git rm -r .settings
git rm -r target-eclipse
git add .gitignore
git commit -m "removed .settings and target-eclipse"

puis

git rm .classpath
git commit -m "removed .classpath"

Vous risquez donc de ne plus avoir votre projet eclipse au prochain pull. Ce ne devrait pas être trop grave.

On peut voir ce que j'ai fait dans l'historique

> git log
commit 0598fad928788c241c5a180b298e316d611685ff
Author: damien bourdette <dbourdette@gmail.com>
Date:   Sat Oct 6 19:25:50 2012 +0200

  removed .classpath

commit 49a26539f85fe47b0a6515bbe1332228ecd7e94e
Author: damien bourdette <dbourdette@gmail.com>
Date:   Sat Oct 6 19:24:47 2012 +0200

  removed .settings and target-eclipse

commit d545da90ccc620cb6adc4f08d9a10a95acc8c70c
Author: boutayna <boutayna@ubuntu.(none)>
Date:   Sat Oct 6 17:24:10 2012 +0200

  use the plugin geb and add a test for home page to check action and recommandation (ticket #14)

commit 9ea2c6c735b560f403b1d1f6d6791aede5000e0a
Author: Thomas Brien <thomas.brien@centrale-marseille.fr>
Date:   Fri Oct 5 13:40:31 2012 +0200

  add a class SubRecommendationFacade to prepare unplug the legacy facade (start #13)

A ce propos, vous devriez changer votre nom et email pour les commit git.

Maintenant afin de voir les différences utiles, je peux faire

> git diff 0598fad9287 9ea2c6c735b

Cela permet de voir les différences entre l'état après mon dernier commit et l'état apres le commit de thomas.

Je regarderai ca un peu plus tard.

dbourdette commented 12 years ago

J'ai corrigé BuildConfig.groovy en applicant ce que je vois dans la doc de Geb.

Pour la version de selenium, il faut prendre la dernière disponible sur le repository central

C'est en partie la que grails va chercher les dépendances (mavenCentral() dans BuildConfig.groovy)

Est ce que cela règle le problème d'import ?

dbourdette commented 12 years ago

Cela semble pas mal.

Chez moi, les tests ne se lancent pas au travers de mon IDE. Du coup la ligne de commande est :

grails test-app functional:

Reste donc le dernier test à faire.

Une remarque aussi sur viewAllButton de HomePage :

class : "btn btn-warning pull-right"

La règle est un peu compliquée et repose sur des éléments qui peuvent facilement bouger. Il serait sans doute préférable d'utiliser un classe supplémentaire ou un id (viewActions ?) ajouté spécifiquement pour ce besoin. Il y a sans doute même d'autres techniques plus adaptées.

boutayna commented 12 years ago

Je suis bloquée à ce niveau là !

dbourdette commented 12 years ago

Pas facile de tester l'affichage de données dynamiques.

J'ai essayé de mon coté de tester l'apparition d'une chaine de caractères. C'est un peu court mais suffisant pour le moment.

Les 3 tests passent.

Par contre, il ne passent pas sous firefox. Pas trop le temps de regarder pourquoi.

Le but de ce ticket était de vous montrer qu'il est possible et peu compliqué de tester une interface web de façon automatique. Nous reviendrons sur ces tests pu plus tard. Si le résultat vous semble bon, on peut fermer ce ticket.

dbourdette commented 12 years ago

Au passage, on peut noter que les sélecteurs de geb sont très proches des sélecteurs de jquery qui sont eux mêmes inspirés des sélecteurs css w3c.

C'est une mécanique très puissante et malgré tout simple. Reste à avoir un arbre dom exploitable.