gpt4 book ai didi

ruby-on-rails - 在 RSpec 单元测试期间 stub 地址地理编码

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:36 26 4
gpt4 key购买 nike

我正在使用 geocoder gem 将地理编码功能添加到我的 Active Record 模型类之一。这很好用,但我实际上不希望在单元测试期间触发地理编码。

我已经尝试通过将此添加到我的 RSpec 测试来消除对地理编码的调用:

before(:each) do
User.stub!(:geocode).and_return([1,1]) end

但是,当我运行测试时,它似乎仍然在调用地理编码。我做错了什么?

仅供引用,如果我在实例级别 stub (例如 some_user.stub!而不是 User.stub!),这一切都有效。

最佳答案

如果你想在实例级别使用 stub ,你应该使用 RSpec 之外的其他模拟框架。以 mocha 为例(将以下内容添加到 spec/spec_helper.rb):

Spec::Runner.configure do |config|
config.mock_with :mocha
end

http://rspec.info/documentation/mocks/other_frameworks.html

现在,您可以在测试中使用any_instance:

before(:each) do
User.any_instance.stub(:geocode).and_return([1,1])
end

关于ruby-on-rails - 在 RSpec 单元测试期间 stub 地址地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com