【发布时间】:2013-12-17 18:25:09
【问题描述】:
在我的一项测试中,我需要完全禁用对给定类的所有调用,因此我做了以下操作:
ApiClass = double("api_class").as_null_object
它工作正常,但是我现在收到以下警告:
~/my_project/spec/models/mymodel_spec.rb:141:warning: already initialized constant ApiClass
~/my_project/app/models/api_class.rb:2:warning: previous definition of ApiClass was here
什么是不会引起这些警告的替代方法?
ps。我刚刚意识到我所做的是完全错误的,因为它实际上用全局上下文中的存根替换了所有测试的类,除非我在执行测试后恢复类。
【问题讨论】:
-
hm,用这个得到了“未定义的方法 `class_double'”..
-
class_double仅在 3.0.0.beta1 中添加到 rspec(从 rspec-fire 移出) -
对,我的版本是2.14.5
标签: ruby-on-rails rspec mocking double