3

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

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

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

4

3 回答 3

7

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

describe SomeHelper do
  it 'should do something' do
    helper.some_block_helper { the_block_code }.should XXXX
  end
end
于 2008-10-30T04:43:15.260 回答
1
  1. 对于功能测试,编写普通视图规范并测试结果。
  2. 要对您的助手进行单元测试,请直接将任意 html 输入字符串传递给它。

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

于 2008-10-29T23:19:01.933 回答
1

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

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
于 2010-11-30T08:18:34.827 回答