如何使用rSpec测试Rails块助手

时间:2008-10-13 10:05:11

标签: ruby-on-rails rspec helper

在我的视图中,我使用一个将任意HTML作为块的帮助器:

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

我的助手在传递给HTML视图(Markdown和其他格式化)之前对传递的HTML块执行了大量操作。我想知道在rSpec中测试helper调用结果的最简洁方法是什么,如果有的话。我发现了一些与ERB的私有方法混淆的例子,但这看起来有点脆弱,难以阅读。

3 个答案:

答案 0 :(得分:7)

为了简单地说明詹姆斯说的话,我认为这样的事情应该可以正常运作:

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

答案 1 :(得分:1)

  1. 对于功能测试,请编写正常的view spec并测试结果。
  2. 要对helper进行单元测试,请直接向其传递任意html输入字符串。
  3. 如果还有其他任何困难,请注释?

答案 2 :(得分:1)

这是另一个扩展Cameron答案的例子

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