如何在rspec测试中存根gmaps4rails地理编码功能?

And*_*vey 5 ruby-on-rails gmaps4rails factory-bot

我正在使用gmaps4rails,并尝试开发一些测试.

我有一家工厂

factory :country do
   sequence(:name) { |n| "Country#{n}" }
end
Run Code Online (Sandbox Code Playgroud)

这显然不被谷歌认可.

Validation failed: Gmaps4rails address Address invalid
Run Code Online (Sandbox Code Playgroud)

API调用也需要时间在我的测试中运行.

如何将API调用存根?

我试过添加

before(:each)
  Country.stub(:geocode)
end
Run Code Online (Sandbox Code Playgroud)

到spec文件,但它没有任何效果.

我的模型看起来像这样

class Country < ActiveRecord::Base
  acts_as_gmappable :lat => 'latitude', :lng => 'longitude'
  def gmaps4rails_address
    "#{self.name}" 
  end
  geocoded_by :gmaps4rails_address

  after_validation :geocode
end
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何想法.

apn*_*ing 5

与名称中的整数无关.

我猜地址不存在或无效.

无论如何,有很多方法可以跳过地理编码或存根.

宝石的规格中汲取灵感