Kev*_*ang 9 ruby rspec ruby-on-rails stubbing geocode
我正在使用地理编码器 gem为我的一个Active Record模型类添加地理编码功能.这很好用,但我实际上并不希望在单元测试期间触发地理编码.
我已经尝试通过将其添加到我的RSpec测试来删除对地理编码的调用:
before(:each)之前做
User.stub!(:geocode).and_return([1,1])结束
但是,当我运行我的测试时,它仍然似乎在呼唤地理编码.我究竟做错了什么?
仅供参考,如果我在实例级别存根(例如some_user.stub!而不是User.stub!),这一切都有效.
如果要在实例级别上使用存根,则应使用除RSpec之外的其他模拟框架.这是mocha
例如(添加以下内容spec/spec_helper.rb
):
Spec::Runner.configure do |config|
config.mock_with :mocha
end
Run Code Online (Sandbox Code Playgroud)
http://rspec.info/documentation/mocks/other_frameworks.html
现在,您可以any_instance
在测试中使用:
before(:each) do
User.any_instance.stub(:geocode).and_return([1,1])
end
Run Code Online (Sandbox Code Playgroud)