如何测试没有值的文本表单字段,例如以下情况:
<input class="string required" id="student_name" name="student[name]"
size="50" type="text" />
我知道如果存在值,您将拥有:
<input class="string required" id="student_name" name="student[name]"
size="50" type="text" value="John" />
您可以进行测试以确保表单字段预先填充了名称“John”,其中包含以下内容:
it "should display an enmpty field for the student name" do
rendered.should have_selector("input", :type => "text",
:name => "student[name]",
:value => "John")
end
我尝试指定“:value => nil”,但没有奏效。
have_selector() 的文档非常少,因此无法在那里找到任何内容,也无法通过搜索找到任何示例(可能使用错误的术语进行搜索)。
根据建议,我也尝试过:value => ''
,但收到以下错误消息:
expected following output to contain a <input type='text' name='vendor[name]' value=''/>
当我尝试时,:value => nil
我收到以下错误消息:
NoMethodError:
undefined method `include?' for nil:NilClass
答案
解决方案是使用:value => ""
或:value => ""
。
它最初在我的案例中不起作用的原因是我在我的 Gemfile 中包含了 webrat 和 capybara gem。删除 webrat 后,它使用两种解决方案都有效。