【发布时间】:2010-02-25 19:49:28
【问题描述】:
我正在使用 rspec 测试可能会因站点结构的变化(我提到的外部影响)而失败的代码。我想写一个涉及“应该引发错误”的示例,但我不确定 rspec 是否是在这种情况下测试代码的正确工具。有人可以指出我的方向吗?
提前致谢
【问题讨论】:
标签: ruby-on-rails ruby tdd rspec
我正在使用 rspec 测试可能会因站点结构的变化(我提到的外部影响)而失败的代码。我想写一个涉及“应该引发错误”的示例,但我不确定 rspec 是否是在这种情况下测试代码的正确工具。有人可以指出我的方向吗?
提前致谢
【问题讨论】:
标签: ruby-on-rails ruby tdd rspec
你可以写custom matchers
类似:
site.should_have_valid_structure
Spec::Matchers.define :have_structure
match do |actual|
actual.structure == Site::VALID_STRUCTURE
end
end
【讨论】:
模拟外部影响,以便您可以正确测试它(如果外部影响是网页或其他 HTTP 请求,WebMock 和 VCR 非常适合此)。您的测试不应该依赖于任何正常或不正确的外部功能。请参阅 http://marnen.github.com/webmock-presentation/webmock.html 了解我去年写的概述。
【讨论】: