【发布时间】:2016-01-12 04:43:57
【问题描述】:
这是我在documentation 中找到的:
require "rails_helper"
RSpec.describe "widgets/index" do
it "displays all the widgets" do
assign(:widgets, [
Widget.create!(:name => "slicer"),
Widget.create!(:name => "dicer")
])
render
expect(rendered).to match /slicer/
expect(rendered).to match /dicer/
end
end
但是如果我在视图中写这个并没有什么不同
<%= render @widgets %>
或者这个
<% @widgets.each do |widget| %>
<p><%= widget.name %></p>
<% end %>
然后我决定试试这个(来源相同):
require "rails_helper"
RSpec.describe "rendering locals in a partial" do
it "displays the widget" do
widget = Widget.create!(:name => "slicer")
render "widgets/widget", :widget => widget
expect(rendered).to match /slicer/
end
end
但它仅适用于渲染一个对象,即用于
<%= render @product %>
而不是为了
<%= render @products %>
那么如何测试我的小部件列表是否为每个小部件呈现部分内容?
【问题讨论】:
标签: ruby-on-rails ruby rspec render