在我的视图中,我使用了一个将任意HTML作为块的助手:
<% some_block_helper do %>
Some arbitrary HTML and ERB variables here.
More HTML here.
<% end %>
我的助手在将传递的HTML块呈现回视图(Markdown和其他格式)之前,会对其执行一系列操作。我想知道在rSpec中测试助手调用结果的最干净的方法是什么(如果有的话)。我发现了一些与ERB的私人方法有关的例子,但这似乎有点脆弱,很难阅读。
为了补充James所说的内容,我认为这样的东西应该很好:
describe SomeHelper do
it 'should do something' do
helper.some_block_helper { the_block_code }.should XXXX
end
end
- 对于功能测试,编写一个普通视图规范并测试结果
- 要对您的助手进行单元测试,请直接向其传递任意的html输入字符串
如果我遗漏了其他困难,请评论?
下面是另一个扩展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