0

在我的 rspec 测试套件中,我使用 mocha 库来创建模拟/存根和测试替身。按照建议,我的 rspec 套件中的示例以随机顺序运行。由于某种原因,一些示例现在随机失败。我已经排除了共享数据库状态和全局变量(我承认:我的 Rails 应用程序中有全局变量)。

另一个合乎逻辑的嫌疑人(也许)是模拟库。根据此处的 rspec 文档, rspec 将在每个示例之后清除所有模拟,即使是在 before(:all) 中创建的模拟。这应该适用于任何模拟库,对吧?也许...

由于历史原因,我的测试套件不使用内置的 rspec 模拟,我们使用 mocha 库。

问题: rspec 会在每个示例之后清除 mocha 创建的所有模拟/存根吗?

4

1 回答 1

0

一个可能的失败点是没有告诉 Rspec 你想使用 mocha 来模拟:

# Where you do your Rspec config stuff
RSpec.configure do |config|
  config.mock_framework = :mocha
end

AFAIK,要进行您提到的清理工作,您需要这样做。

资源

于 2014-12-26T18:36:26.903 回答