0

私はいくつかの Gmaps4rails のスタブ化の質問を確認しましたが、かなり近いと思いますが、完全ではありません。許してください: レールでのスタブとモッキングは初めてです。

このコードはすべて実世界で機能し、テスト中にジオコーディングをスキップするように試みているだけです。現在、テストはGmaps4rails address Address invalidエラーで動作する場合と失敗する場合があります

したがって、acts_as_gmappable という非常に単純な party.rb モデルがあります。

def gmaps4rails_address
   "#{self.city}, #{self.country}" 
end 

github から geocoding.rb を貼り付けて、変更せずに /spec/support に配置しました。

ただし、実際のスタブの代わりにスタブを使用するように、parties_controller_spec に指示できないようです。私は単純なものが欠けていると確信しています...私は試しました:

include Geocoding

そしてさえ

Gmaps4rails.set_gmaps4rails_options!({:msg => "quack"})

エラー メッセージとして "quack" が表示されず、Validation failed: Gmaps4rails address Address invalid が表示されます。

また試しました:

Gmaps4rails.set_gmaps4rails_options!({:validation => false, :check_process => false, :process_geocoding => false})

しかし、効果はありません。

私の factory.rb には、単純な :party 定義があります。

Factory.define :party do |party|
party.name      "Thai New Year"
party.city      "Phuket"
party.country   "Thailand"
...
end

したがって、スタブ化された Gmaps4rails を使用するように rspec に適切に指示していないと確信しています。では、実際にジオコーディングを実行しようとする代わりに、Gmaps4rails に stub_geocoding メソッドを使用するように指示するコードをどこに置くのでしょうか?

何か助けていただければ幸いです...これがありふれた質問である場合は申し訳ありません。

デイブ

4

1 に答える 1

4

ジオコーディングが不要な場合は、次のようにします。

Factory.define :party do |party|
  party.name      "Thai New Year"
  party.city      "Phuket"
  party.country   "Thailand"
  party.gmaps     true #<= this is what tells the gem not to fire geocoding
  party.latitude  whatever_if_relevant
  party.longitude whatever_if_relevant
  ...
end
于 2012-11-06T16:57:00.830 に答える