尝试填充text_field_tag时出现Capybara错误

时间:2014-02-12 12:47:42

标签: ruby-on-rails rspec capybara

在我的应用程序中,用户可以搜索一个邮政编码,该邮政编码会返回相应的街道名称和城市。邮政编码用<%= text_field_tag %>写成,而街道名称和城市将被放入div。

现在我已将其更改为街道名称也会呈现为<%= text_field_tag %>,但我的规格现已失败。

以下代码是一个有效的测试,其中街道名称和城市将被放入div。

it 'submits the zipcode and house number', js: true do  
    fill_in 'zipcode', with: '1111AA'
    fill_in 'house_number', with: 1
    click_button('Search')
    within('#street_name') do
        page.should have_content 'Street X'
    end
    within('#city') do
        page.should have_content 'Town X'
    end
end

我的divs:

<div id="street_name"><%= street_name %></div>
<div id="city"><%= city %></div>

我的文字字段标记:

<%= text_field_tag 'street_name', street_name, placeholder: 'Straatnaam', id: 'street_name' %>
<%= text_field_tag 'city', city, placeholder: 'Woonplaats', id: 'city' %>

我应该如何编写规范,以便检查街道名称和城市是否在<%= text_field_tag %>而不是div?

1 个答案:

答案 0 :(得分:1)

我很确定你可以找到你的文本字段并使用以下代码断言它的值:

find_field("street_name").value.should eq 'Street X'

尽管如此,请确保ID在布局中是唯一的,否则您可能会遇到一些令人讨厌的模糊失败。

我希望有所帮助!