【发布时间】:2013-09-04 21:11:25
【问题描述】:
foo.should_receive( :save ).with( html )
html 是一个 HTML 字符串,但我不想检查特定的 HTML,因为这会使测试变得脆弱。
有没有办法检查 foo 应该收到的参数的长度?是否可以使用匹配器或html.should include '<html'之类的东西?
在 RSpec 中工作。
【问题讨论】:
-
我的问题是,如果是 html,为什么 foo 的 save care 呢?
-
Foo 是一个报表模型,测试是检查运行报表的方法。我并不真正关心报告的输出,因为测试数据库中没有数据。但它应该保存报告,并且报告应该是一个 HTML 页面。
-
如果保存,将其转换为 HTML,它的作用很大。如果它验证它的输入是 HTML,那么它做的太多了。如果没有,它只会保存通过的任何内容,不管它是什么,以及 FileExists 测试,也许只需要使用一个小测试文件读取并与输入进行比较。
-
你是对的。报告模型做两件事:报告和生成 HTML。所以我们需要一个单独的模型来生成 HTML。
标签: ruby rspec expectations