私はいくつかの 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 メソッドを使用するように指示するコードをどこに置くのでしょうか?
何か助けていただければ幸いです...これがありふれた質問である場合は申し訳ありません。
デイブ