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

时间:2012-05-23 04:28:21

标签: ruby-on-rails factory-bot gmaps4rails

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

我有一家工厂

factory :country do
   sequence(:name) { |n| "Country#{n}" }
end

显然不被Google认可。

Validation failed: Gmaps4rails address Address invalid

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

如何将API调出存根?

我尝试过添加

before(:each)
  Country.stub(:geocode)
end

到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

感谢任何想法。

1 个答案:

答案 0 :(得分:5)

与名字中的整数无关。

我猜地址不存在或无效。

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

gem's specs

中获取灵感