【发布时间】:2017-09-19 20:15:00
【问题描述】:
我正在寻找以安全方式将昂贵物品翻倍的“最小方法”。
我知道 mocks、stubs 和使用它们,但问题是简单的双打不防水。如果真实对象的 api 发生变化,则测试通过,但实际实现失败。
我找到了 rspec 的 instance_double-feature。我用 Minitest 创建我的测试。你能为我指出正确的方向吗? 谢谢
【问题讨论】:
标签: ruby testing rspec minitest
我正在寻找以安全方式将昂贵物品翻倍的“最小方法”。
我知道 mocks、stubs 和使用它们,但问题是简单的双打不防水。如果真实对象的 api 发生变化,则测试通过,但实际实现失败。
我找到了 rspec 的 instance_double-feature。我用 Minitest 创建我的测试。你能为我指出正确的方向吗? 谢谢
【问题讨论】:
标签: ruby testing rspec minitest
Minitest 有意设计为具有非常基本的模拟和存根实现。以下链接可能很有趣:https://martinfowler.com/articles/mocksArentStubs.html。
所以结论是,在 Minitest 中没有真正对应 rspec 的 instance_double 的东西。
与此同时,我是经典测试的粉丝。这意味着:尽量避免模拟。但在某些情况下,嘲笑是不可避免的。如果是这种情况,我会推荐 respec-mocks 的 minitest 集成:https://relishapp.com/rspec/rspec-mocks/docs/outside-rspec/integrate-with-minitest
【讨论】: