【问题标题】:Rails testing - Stubs and mocksRails 测试 - 存根和模拟
【发布时间】:2013-06-07 04:55:54
【问题描述】:

我正在开发一个 Rails 项目,其中模型查询服务并从服务中获取数据。现在,当我想为模型和控制器编写测试时,我需要模仿服务。我对 Rails 测试相当陌生。我对我应该做什么感到困惑。 Rails 有存根、模拟和夹具——我应该使用这三个中的哪一个。我想固定装置不会有用。 建议请。谢谢。

【问题讨论】:

  • 我也有同样的问题。什么是存根。我看到这些装置的行为不像在数据库中构建或创建的记录,因为没有针对此模型运行回调。很烦人。

标签: ruby-on-rails-3 testing mocking stubs


【解决方案1】:

大多数 Rails 测试不需要存根或模拟,但在这种情况下,您可能需要它的一个示例是在控制器或集成测试中模拟模型。

由于控制器通常会操纵模型,因此您有时需要验证模型是否以某种方式被调用。您通常可以通过在调用控制器后断言模型的状态来做到这一点,但有时您可能希望验证从控制器到模型的实际调用。在这种情况下,您使用 Ruby 模拟库“模拟”模型并在调用控制器之前设置期望。如果没有调用预期的模型方法,测试将失败。

另一个动机可能是伪造一些返回的数据,在这种情况下,您将“存根”模型。存根只是嘲弄,没有任何断言,你可以准备一些虚假的行为。

More info on Rails stubbing and mocking

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 2017-05-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多