【问题标题】:How do I test Rails block helpers with rSpec如何使用 rSpec 测试 Rails 块助手
【发布时间】:2008-10-13 10:05:10
【问题描述】:

在我看来,我使用了一个将任意 HTML 作为块的助手:

<% some_block_helper do %>
  Some arbitrary HTML and ERB variables here.
  More HTML here.
<% end %>

我的助手在将传递的 HTML 块渲染回视图(Markdown 和其他格式)之前对它做了很多事情。我想知道在 rSpec 中测试帮助程序调用结果的最干净的方法是什么,如果有的话。我发现了一些与 ERB 的私有方法有关的示例,但这似乎有点脆弱且难以阅读。

【问题讨论】:

    标签: ruby-on-rails rspec helper


    【解决方案1】:

    为了补充一点詹姆斯所说的,我认为这样的事情应该可以正常工作:

    describe SomeHelper do
      it 'should do something' do
        helper.some_block_helper { the_block_code }.should XXXX
      end
    end
    

    【讨论】:

      【解决方案2】:
      1. 对于功能测试,写一个普通的view spec 并测试结果。
      2. 要对您的 helper 进行单元测试,请将任意 html 输入字符串直接传递给它。

      如果还有其他我遗漏的困难,请发表评论?

      【讨论】:

      • 由于测试是在 Ruby 中而不是在模板中,因此不清楚如何复制将 HTML 放在 doend 之间的 ERB 标记之外的行为。
      【解决方案3】:

      这是另一个扩展卡梅伦答案的例子

      describe SomeHelper do
        it 'should do something' do
          content = lambda { "blah" }                                
          result  = helper.some_block_helper(&content)
      
          result.should include("blah")
          result.should XXX
        end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多