2012-05-23 13 views
5

私はgmaps4railsを使い、いくつかのテストを開発しようとしています。rspecテストでgmaps4railsジオコード関数をスタブする方法はありますか?

私は明らかにGoogleが認識されない工場

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

を持っています。

APIコールはテストにも時間がかかります。

API呼び出しをスタブするにはどうすればよいですか?

私はspecファイルに

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

こんにちは。答えに感謝します。無効なアドレスはGoogleからの返信であると思われます。これは正しいと思いますか?では、ジオコーディングをどのようにスタブしますか?私は 'Country.stub(:geocode)'を含む各ブロックを前に持っているcountry_specs.rbという単一のテストを実行しています。私は '.stub_geocode'、' .stub(:gmaps4rails) 'など他にもいくつか試してみましたが、ジオコーディングはまだ実行されています。モデルコードを質問に追加します。 –

+0

あなたが宝石から来ているすべての提案を感謝します。スタブについてはこちらをご覧ください:https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/spec/support/geocoding.rb – apneadiving

関連する問題