当我使用测试下面的功能,步骤和HTML运行我的测试时没有错误(直到它在断言步骤失败),但我可以看到下拉选择没有发生变化。我做错了什么?
<div class='field'>
<label for="verification_value">Verification Number</label>
<input id="verification_value" type="text" />
</div>
<div class='field'>
<label for="month">Month</label>
<select id="month">
<option value="1">1 - January</option>
<option value="2">2 - February</option>
<option value="3">3 - March</option>
<option value="4">4 - April</option>
<option value="5">5 - May</option>
<option value="6">6 - June</option>
<option value="7">7 - July</option>
<option value="8">8 - August</option>
<option value="9">9 - September</option>
<option value="10">10 - October</option>
<option value="11">11 - November</option>
<option value="12">12 - December</option>
</select>
</div>
When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
select(value, :from => field)
end
Feature: In order for this to work, a select menu should be changeable
@javascript
Scenario: A user follows the steps to successfully do fun stuff
Given I go to a page
And I fill in "verification_value" with "12345"
And I select "2 - February" from "month"
Then I should see "everything worked" within "body"
And I select "2" from "month"
实际上不会产生任何错误,它只是不会更改select选项。应该将选择设置为2 - February
我也尝试使用firefox驱动程序,我得到了相同的结果
关于正则表达式,我添加了一个puts
行,它确实已经运行了
When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
puts "STEP MATCHED" # << it did put "STEP MATCHED"
select(value, :from => field)
end
我从默认的web_steps.rb
复制了它,所以我很惊讶它不适用于某些人,但对我来说效果很好。
答案 0 :(得分:1)
看起来你在SELECT标签中有一个额外的双引号。这可能会导致问题。
答案 1 :(得分:0)
我没有尝试过您的代码,我现在没有时间,但您可能会考虑测试该正则表达式。如果您试图避免在该步骤定义中要求“I”,我建议您这样做:
When /^(?:I )?select "([^"]*)" from "([^"]*)"$/ do |value, field|
select(value, :from => field)
end
捕获组后面的问号(用括号表示)表示捕获组的内容是可选的。如果先前的答案是关于它为什么不起作用的任何指示,这可能有助于它确定步骤。