【问题标题】:How to test partials in views specs?如何测试视图规范中的部分?
【发布时间】:2014-06-20 09:10:56
【问题描述】:

我想在我的 layouts/application.html.erb 中有一个用户菜单。将来,我计划将其移至部分布局/_user_menu.html.erb。

我应该如何开始,仅在 application.html.erb_spec.rb 中为此菜单编写测试,然后进行重构以将其移至部分,将所有测试留在 application.html.erb_spec.rb 中?

或者写它单独的测试_user_menu.html.erb_spec.rb?在这种情况下,我如何测试 application.html.erb 来呈现这个部分?我不认为在这里使用 html 选择器是个好主意,并考虑在我的 application.html.erb_spec.rb 中类似的东西:

expect(view).to render_partial 'user_menu'

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rspec rspec-rails


    【解决方案1】:

    请试试这个

    response.should render_template(:partial => 'partial_name')
    

    【讨论】:

    • 我没有按预期工作。它查找诸如“应用程序/_partial_name”之类的部分,而不是“布局/_partial_name”。如果我明确检查 render_template(partial: 'layouts/_partial_name') 它可以工作。但这有点令人困惑,为什么我不能检查 render_template(partial: 'layouts/partial_name') 而不是 render_template(partial: 'layouts/_partial_name')
    • 我也尝试了你想要的,但我找到了上面的方法,所以我们必须写文件的真实名称,因为我们正在尝试检查'render_templete',这就是为什么我们用'_写部分名称'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多