Concombre/Capybara: vérifier qu'une page ne dispose PAS de contenu?
À l'aide de Concombre et le Capybara, est-il un moyen de vérifier qu'une chaîne n'est PAS présent sur une page?
Par exemple, comment pourrais-je écrire le contraire de cette étape:
Then /^I should see "(.*?)"$/ do |arg1|
page.should have_content(arg1)
end
Ce passe si arg1
est présent.
Comment pourrais-je écrire une étape qui échoue si arg1
?
OriginalL'auteur dB' | 2012-08-16
Vous devez vous connecter pour publier un commentaire.
http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers#has_no_text%3F-instance_method
Il y a un
has_no_content
matcher dans le Capybara. Vous pouvez donc écrireassert !page.has_content?(arg)
vous avez raison, voir plus d'informations - github.com/ngauthier/capybara-slow_finder_errors
OriginalL'auteur Piotr Jakubowski
Dans Rspec 3.4 actuellement (2016) c'est la méthode de test pour ne pas avoir de contenu:
expect(page).to have_no_content(arg1)
? Il semble qu'il n'y a aucun moyen pour not_to à savoir de ne pas attendre pour le contenu sur la page, qui est ce quehave_content
ferait, je pense.La dépréciation des Avertissements sont affichés lors de l'utilisation d'attendre(page).pour have_no_content(arg1)
l'amortissement des avertissements de vous parler de la doivent avoir été retirés dans rspec 3.5.4/capybara 2.6.2. Par la documentation: github.com/teamcapybara/... -
Capybara's RSpec matchers, however, are smart enough to handle either form. The two following statements are functionally equivalent: expect(page).not_to have_xpath('a'), expect(page).to have_no_xpath('a')
OriginalL'auteur Micah
Vous pouvez également utiliser should_not si vous voulez lire un peu mieux:
Quelques infos: https://www.relishapp.com/rspec/rspec-expectations/docs
Utilisation
has_no_content?
à la place. Qui va déclencher le capybara interne de l'attendre. Autrement, il va échouer prématurément si vous êtes en attente pour le contenu de disparaître de la page.OriginalL'auteur Adam Sheehan
actuellement, vous pouvez utiliser:
Et si le contenu se trouve dans la page, le test est rouge
Merci @Rimian. J'ai résolu ce problème!
OriginalL'auteur Raphael Abreu
Je passe souvent beaucoup de temps à chercher une réponse pour ce qui fonctionne réellement. Beaucoup de réponses ne fonctionnent pas (peut-être plusieurs réponses précédentes ont été dépréciés? Ou il peut dépendre de la version de rails ou de gemmes que vous utilisez).
Mais pour moi ce qui fait enfin:
OriginalL'auteur PolarisTLX
Oh, attendez, j'ai tout compris. Cela fonctionne:
Cela avait déclenché moi plusieurs fois. Soit vous utilisez
assert page.has_content...
oupage.should have_content...
ne Peut pas mélanger les deux styles confondus. Bon appel, @PhilippeRathé.OriginalL'auteur dB'