2012-05-23 42 views
5

我正在使用gmaps4rails,並試圖開發一些測試。如何在rspec測試中對gmaps4rails地理編碼函數進行存根?

我有一個工廠

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

這顯然不是由谷歌承認。

Validation failed: Gmaps4rails address Address invalid 

API調用也花費時間在我的測試中運行。

如何將API調出存根?

我已經嘗試添加

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

的規範文件,但它沒有任何效果。

我的模型看起來像這樣

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 

感謝您的任何想法。

回答

5

與名字中的整數無關。

我猜這個地址不存在或無效。

無論如何,有很多方法可以跳過地理編碼或存根。

gem's specs獲取靈感

+0

不是回答嗎? – apneadiving

+0

Hi apneadiving。感謝你的回答。似乎無效的地址是來自Google的回覆。這聽起來正確嗎?那麼我如何存根地理編碼?我正在運行一個測試country_specs.rb,其中我有一個before:每個包含'Country.stub(:geocode)'的塊。我嘗試了一些其他的東西'.stub_geocode','.stub(:gmaps4rails)'等,但地理編碼仍在運行。我會將我的模型代碼添加到問題中。欣賞你有任何建議 –

+0

它來自寶石。對於stubbing看看這裏:https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/spec/support/geocoding.rb – apneadiving

相關問題