ruby-on-rails - 与 RSpec 的内置模拟框架相比,Mocha 有哪些优势?

标签 ruby-on-rails ruby mocking rspec

<分区>

我注意到很多人更喜欢 Mocha 而不是 RSpec 的内置模拟框架。有人可以解释 Mocha 或任何替代方案相对于内置模拟框架的 RSpec 的优势吗?

最佳答案

自从 2009 年提出这个问题以来,Ruby 模拟框架已经有了很大的发展。所以这里有一些 2013 年的比较:

期望

  • 使用 Rspec-mocks:expect(user).to receive(:say_hello)
  • 使用 Mocha:user.expects(:say_hello).once

stub 对象

  • 使用 Rspec-mocks:user = double(name: 'John Doe')
  • 使用 Mocha:user = stub(name: 'John Doe')

stub

  • 使用 Rspec-mocks:User.any_instance.stub(:name).and_return('John Doe')
  • 使用 Mocha:User.any_instance.stubs(:name).returns('John Doe')

它们提供相同的功能,并且都可以使用或不使用 Rspec。
所以我会说选择一个而不是另一个是个人品味的问题(而且它们的味道非常相似)。

关于ruby-on-rails - 与 RSpec 的内置模拟框架相比,Mocha 有哪些优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406692/

相关文章:

ruby-on-rails - 高级 Rails 模式 : organizing views around nested doc, 章节,页面层次结构

ruby-on-rails - 获取 has_many 关联时出错,TypeError : can't convert String into Integer

ruby-on-rails - Rails 在模型中设置默认 boolean 值

java - 无法使用 PowerMock 模拟 httpClient.execute 方法

ruby-on-rails - 后端验证轨

ruby-on-rails - 简单的照片库 gem

ruby-on-rails - 如果参数为空,如何从数据库 Rails 设置默认值

ruby - 如何从 sinatra 应用程序中发布的 JSON 中捕获参数哈希

swift - 模拟 URLSession 以返回模拟的 URLSessionDataTask

python - 使用模拟测试 python 中的函数