J'utilise Ruby on Rails avec du concombre et du capybara.
Comment procéder pour tester une simple commande de confirmation ("Êtes-vous sûr?")?
De plus, où puis-je trouver de la documentation supplémentaire sur ce problème?
automated-tests
capybara
integration-testing
Yuval Karmi
la source
la source
Réponses:
On dirait qu'il n'y a aucun moyen de le faire à Capybara, malheureusement. Mais si vous exécutez vos tests avec le pilote Selenium (et probablement d'autres pilotes prenant en charge JavaScript), vous pouvez le pirater. Juste avant d'effectuer l'action qui ferait apparaître la boîte de dialogue de confirmation, remplacez la
confirm
méthode pour toujours retourner true. De cette façon, la boîte de dialogue ne sera jamais affichée et vos tests peuvent continuer comme si l'utilisateur avait appuyé sur le bouton OK. Si vous souhaitez simuler l'inverse, modifiez-le simplement pour renvoyer false.la source
Le pilote sélénium prend désormais en charge cela
Depuis Capybara, vous y accéderiez comme ceci:
ou
ou
la source
page.driver.browser
dans la réponse de DerekJ'ai implémenté ces deux étapes Web dans
/features/step_definitions/web_steps.rb
:la source
Si vous souhaitez tester spécifiquement le message affiché, voici une manière particulièrement pirate de le faire. Je ne le considère pas comme un beau code, mais il fait le travail. Vous devrez charger http://plugins.jquery.com/node/1386/release , ou le modifier pour faire des cookies de manière native si vous ne voulez pas de jQuery.
Utilisez ce genre d'histoire:
Et ces étapes
la source
Mise à jour pour les versions actuelles de Capybara. La plupart des pilotes Capybara prennent aujourd'hui en charge l'API modale. Pour accepter un modal de confirmation, vous feriez
Cela peut être utilisé dans le concombre avec quelque chose comme
qui cliquera sur le bouton nommé puis acceptera une boîte de confirmation avec le texte correspondant au msg
la source
Le pilote capybara-webkit le prend également en charge.
la source
la source
Prickle ajoute des méthodes pratiques pour travailler avec des popups dans le sélénium et le webkit
la source
Cet essentiel contient des étapes pour tester une boîte de dialogue de confirmation JS dans les rails 2 et 3 avec n'importe quel pilote Capybara.
C'est une adaptation d'une réponse précédente, mais n'a pas besoin du plugin jQuery Cookie.
la source
J'ai essayé les réponses ci-dessus sans succès. En fin de compte, cela a fonctionné pour moi:
la source