[英]Testing render partial with nested partials in Rails helper
我有一个看起来像这样的助手:
module ActivityFeedHelper
def render_activity_feed(activities)
render partial: 'activities/activity_feed', locals: { activities: activities }
end
end
我正在为助手编写一个规范,如下所示:
describe ActivityFeedHelper do
describe '.render_activity_feed' do
let(:activities) { FactoryGirl.create_list(:activity, 3) }
it 'should render activity feed' do
expect(render_activity_feed(activities)).to render_template(partial: 'activities/activity_feed')
end
end
end
但这给了我错误:
Failure/Error: expect(render_activity_feed(activities)).to render_template(partial: 'activities/activity_feed')
expecting partial <activities/activity_feed> but action rendered <["activities/_activity", "_activity", "activities/_activities", "_activities", "activities/_activity_feed", "_activity_feed"]>.
Expected {"activities/_activity"=>3, "_activity"=>3, "activities/_activities"=>1, "_activities"=>1, "activities/_activity_feed"=>1, "_activity_feed"=>1} to include "activities/activity_feed".
大概是因为部分渲染了多个子部分而发生的。
也就是说,我应该如何测试呢?
我想我也曾一次陷入这个陷阱。 您的错误意味着您必须以这种方式呈现模板:
expect(render_activity_feed(activities)).to render_template(partial: 'activities/_activity_feed')
请注意_activity_feed中的下划线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.