在RSpec中,mock和double之间的区别是什么?

Pet*_*xey 35 ruby testing rspec ruby-on-rails

在rspec中,您可以创建一个mock或一个double.这两个看起来几乎是一回事,我在文档中找不到任何消除歧义的东西.

有什么不同?

Jim*_*dra 38

这两个mockstub是比较通用的别名double.喜欢contextdescribe,它们可以互换使用,以使规范的意图更清晰.这在RSpec Book中有更详细的描述.

  • 另外文档建议使用`double`而不是`mock`和`stub`:你也可以使用mock和stub方法来创建测试双精度,但是这些方法仅用于向后兼容,可能会被弃用,然后从将来删除版本(https://www.relishapp.com/rspec/rspec-mocks/) (4认同)