【发布时间】:2014-05-26 16:12:54
【问题描述】:
在我的index-控制器中,我有这个代码:
def index
@categories = Category.all
end
视图的相关部分如下所示:
<% for c in @categories %>
<div id="location_radio">
<%= radio_button_tag "category", c.id %><%= c.name %>
</div>
<% end -%>
在浏览器中呈现如下:
<input checked="checked" id="category_1" name="category" type="radio" value="1">
而我的 spec 看起来像这样:
describe "Find nearby location" do
it 'finds a location nearby the submitted address' do
@location = create(:location)
visit index_path
fill_in "search", :with => "Stortinget, Oslo"
choose "category_1"
click_button "Find Location!"
end
end
现在。问题是当我尝试使用puts page.body 打印页面正文时,我可以看到单选按钮元素不存在。这让我相信控制器生成的@categories-变量永远不会被创建。
TL;DR:如果用户 visit 使用 Capybara 的页面,是否会运行相应视图的操作,从而使变量对视图可见?
【问题讨论】:
标签: ruby-on-rails ruby rspec capybara rspec-rails