繁体   English   中英

在Rails帮助器中测试带有嵌套局部的渲染局部

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM