31 votes

Comment vérifier le nombre d'enregistrements à l'aide de capybara ?

J'utilise capybara avec cucumber sur un projet Rails 2.3.9.

J'ai une page d'index des utilisateurs et j'y ai deux enregistrements. En utilisant capybara, comment puis-je affirmer qu'il n'y a que deux enregistrements dans la page ?

La structure HTML est la suivante

<div class='records'>
  <li>record 1<li>
  <li>record 2 </li>
</div>

48voto

Mark Weston Points 1002

Cela devrait faire l'affaire pour votre définition de l'étape du concombre :

page.has_css?("div.records li", :count => 2)

Il y a aussi page.has_xpath? (mais je ne comprends pas xpath)

Si vous utilisez Rspec, vous pouvez le formuler à la manière de Rspec avec :

page.should have_css("div.records li", :count => 2)

J'ai dû résoudre un problème très similaire hier encore ; voici la définition complète de l'étape à laquelle j'ai abouti.

Then /^I should see only (\d+) tasks$/ do |number_of_tasks|
  page.should have_css("table tr.task", :count => number_of_tasks.to_i)
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X