【问题标题】:Rendering ActionView without Rails for testing在没有 Rails 的情况下渲染 ActionView 以进行测试
【发布时间】:2012-03-05 12:07:18
【问题描述】:

如何在不使用完整 Rails 堆栈的情况下测试我的 ActionView 扩展(例如新助手)?

我使用 RSpec,所以我必须以某种方式从 spec_helper.rb 的 /spec/views/ 文件夹中呈现模板。最好的方法是什么?

【问题讨论】:

    标签: ruby-on-rails-3 actionview


    【解决方案1】:

    我可能不会回答您的问题,但您可以将 RSpec 与 rspec-rails gem 一起使用。无需在 Rails 堆栈之外进行测试。

    https://github.com/rspec/rspec-rails

    这是一个例子:

    describe "lists/show.html.erb" do
      before(:each) do
        assign :new_link, Link.new
        @link = mock_model(Link,
                           :title => "Link's title",
                           :url => "http://wwww.link.s.url/")
        @list = mock_model(List,
                           :title => "Some title",
                           :links => [@link])
      end
    
      it "displays the list's title" do
        render
        rendered.should have_content(@list.title)
      end
    
      it "displays the links's title and URL" do
        render
        rendered.should have_link(@link.title,
                                  :href => @link.url)
      end
    end
    

    您必须调整您的 Gemfile(参见后面的链接)并运行 bundle updaterails rspec:install

    【讨论】:

    • 谢谢。事实上,渲染/渲染解决方案也可以在没有轨道的情况下工作。
    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2019-10-16
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多