测试需要HTML字符串的方法有什么好方法?

时间:2013-09-04 21:11:26

标签: ruby rspec expectations

foo.should_receive( :save ).with( html )

html是一个HTML字符串,但我不想检查特定的HTML,因为这会使测试变得脆弱。

有没有办法检查foo应该收到的参数的长度?是否可以使用匹配器或html.should include '<html'

之类的东西

在RSpec工作。

2 个答案:

答案 0 :(得分:1)

我不明白为什么使用您提供的代码无效。也许使用include?代替。您还可以使用正则表达式来确定它是否是HTML。虽然对于这个具体的例子它可能有点多,但你可能能够确定关于html的更具体的事情,然后就好像它有那个标签。

答案 1 :(得分:1)

如上面的评论中所述,您可以使用正则表达式作为参数匹配器。

foo.should_receive(:save).with(/<html/)

如果你想做更复杂的断言,你可以提供一个块:

foo.should_receive(:save).with do |arg|
  arg.should include '<html'
end