Cucumber/Webrat vérifier la valeur sélec tionnée pour un select

Bonjour,

J’utilise cucumber pour mes tests mais je ne trouve pas le moyen de
vérifier si une valeur est sélectionnée (select).

J’ai trouvé ce qui est recommandé là :
http://macksmind.net/2009/05/31/verifying-select-field-value-with-cucumber-and-webrat/

Mais ça ne marche pas pour moi, il me dit Could not find field labeled
“topic[scope]” (Webrat::NotFoundError)
et ce quelque soit la façon dont je nomme mon champs (topic_scope)

Quelqu’un l’a-til déjà fait?

Il doit y avoir quelque chose qui m’échappe:
J’ai un select don le name est “topic[scope]”

  • Quand j’utilise la step webrat prédéfini
    And “topic[scope]” should be equal to “xxxx”, il ne trouve bien le
    field (le test échoue car la valeur n’est pas bonne mais ce n’est pas
    le problème)
  • Quand j’utilise la méthode définie dans le lien précédente j’ai
    l’erreur “topic[scope]” (Webrat::NotFoundError)

Alors que les deux méthode utilisent labeled_field(field). Quelqu’un a
une idée?

Nicolas

J’ajoute que les 2 méthodes sont dans le fichier webrat_steps.rb

C’est quand même étrange dans mon fichier .feature j’ai ces deux
lignes qui se suivent
Then I select “Propriétaires” from “topic[scope]”
Then “Propriétaires” should be selected for “topic[scope]”
La première passe la deuxième se plante avec mon fameux
“topic[scope]” (Webrat::NotFoundError)
(eval):2:in `/^"([^"])" should be selected for “([^”])"$/’

Tranquiliste a écrit :

C’est quand même étrange dans mon fichier .feature j’ai ces deux
lignes qui se suivent
Then I select “Propriétaires” from “topic[scope]”
Then “Propriétaires” should be selected for “topic[scope]”
La première passe la deuxième se plante avec mon fameux
“topic[scope]” (Webrat::NotFoundError)
(eval):2:in `/^“([^"])" should be selected for "([^"])”$/’

Tu peux nous donner le code exacte de tes 2 steps ? celle qui marche et
celle qui marche pas.

Sans code on arrive jamais trop à savoir le problème.


Cyril M.

Tranquiliste a écrit :

par
field_labeled(field).value.should =~ /#{value}/

Ca ne marche pas non plus. Cela viendrait il du fait que je l’ai
“rajouté”?

et le HTML que tu tentes de récupérer, il est comment ?

“topic[scope]” (Webrat::NotFoundError)


Cyril M.

Dans le standard webrat_steps et marche
When /^I select “([^”])" from “([^”])"$/ do |value, field|
select(value, :from => field)
end

Then /^the “([^”])" field should contain “([^”])"$/ do |field,
value|
field_labeled(field).value.should =~ /#{value}/
end

Ajoutée par moi et ne marche pas
Then /^"([^"])" should be selected for “([^”])"$/ do |value,
field|
field_labeled(field).element.search(".//option[@selected =
‘selected’]").inner_html.should =~ /#{value}/
end

Le pire c’est que si je change
field_labeled(field).element.search(".//option[@selected =
‘selected’]").inner_html.should =~ /#{value}/
par
field_labeled(field).value.should =~ /#{value}/

Ca ne marche pas non plus. Cela viendrait il du fait que je l’ai
“rajouté”?

Tranquiliste a écrit :

Mais sinon j’ai réussi à le faire marcher en changeant field_labeled
par field_named

Je pense que le field_labeled se base sur l’id et field_named sur le
name

tu peux donc peut-être essayé field_labeled(‘topic_scope’) et voir si ca
marche aussi.

Ajoutée par moi et ne marche pas
field_labeled(field).value.should =~ /#{value}/

Tu peux nous donner le code exacte de tes 2 steps ? celle qui marche et


Cyril M.

Il ressemble à ça:
Diffusion

    <span class="forminput"><select id="topic_scope" name="topic

[scope]">Immeuble

Propriétaires Conseil Syndical

Mais sinon j’ai réussi à le faire marcher en changeant field_labeled
par field_named

Il doit y avoir qq chose qui m’échappe.

Nicolas

topic_cope ne marchait pas non plus.