【问题标题】:Using rspec to test code prone to external infuence使用 rspec 测试容易受到外部影响的代码
【发布时间】:2010-02-25 19:49:28
【问题描述】:

我正在使用 rspec 测试可能会因站点结构的变化(我提到的外部影响)而失败的代码。我想写一个涉及“应该引发错误”的示例,但我不确定 rspec 是否是在这种情况下测试代码的正确工具。有人可以指出我的方向吗?

提前致谢

【问题讨论】:

    标签: ruby-on-rails ruby tdd rspec


    【解决方案1】:

    你可以写custom matchers

    类似:

    site.should_have_valid_structure
    
    Spec::Matchers.define :have_structure
      match do |actual|
        actual.structure == Site::VALID_STRUCTURE
      end
    end
    

    【讨论】:

    • 您好 Erwan,感谢您的帮助。我想我将使用 mechanize 来测试页面中的某些内容是否仍然存在于站点中(在这种情况下会引发错误)。我喜欢你的想法,但我实际上是在测试网站中的细微差别,比如不再存在的 div 之类的东西。
    【解决方案2】:

    模拟外部影响,以便您可以正确测试它(如果外部影响是网页或其他 HTTP 请求,WebMock 和 VCR 非常适合此)。您的测试不应该依赖于任何正常或不正确的外部功能。请参阅 http://marnen.github.com/webmock-presentation/webmock.html 了解我去年写的概述。

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 2015-01-01
      • 2016-12-13
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 2020-12-19
      • 2023-03-12
      • 2012-11-07
      相关资源
      最近更新 更多