J'ai utilisé la définition des étapes suivantes avec le concombre et le webrat et tout a bien fonctionné :
Then /^I should see "([^\"]*)" worker in the workerlist/ do |number|
response.should have_selector("td.worker_name", :count=>number)
end
Je suis maintenant passé à Selenium et, d'une manière ou d'une autre, le sélecteur have_selector ne prend plus le paramètre :count. J'obtiens l'erreur suivante :
ArgumentError: wrong number of arguments (2 for 1)
./features/step_definitions/worker_generation_steps.rb:15:in `have_selector'
Ensuite, j'ai essayé d'utiliser assert_contain, mais je n'ai pas trouvé de regex qui vérifie le nombre exact. Malheureusement, la définition de l'étape suivante passe si le nombre de "class="worker_name"" est inférieur au nombre attendu.
Then /^I should see "([^\"]*)" worker in the workerlist/ do |number|
assert_contain (/((.*)(class="worker_name"))#{number}/m)
end
Mes questions :
1.) Comment puis-je vérifier de la manière la plus simple que dans mon exemple "td.worker_name" apparaît exactement un certain nombre de fois ?
2.) S'il n'y a aucun moyen de contourner l'expression rationnelle : comment puis-je réécrire l'expression rationnelle ci-dessus de manière à vérifier le nombre exact de "class="worker_name"" ?
Merci beaucoup !