Как заглушить Gmap4rails

Я хочу реализовать тест rspec для проекта ruby ​​on rails. Некоторые классы используют gmaps4rails

заводы.рб:

 FactoryGirl.define do
   factory :place do |s|
      sequence(:name) {|n| "test  place#{n}" }
   end
 end

factorytest_spec.rb (с требованием 'spec_helper')

it "Test" do
Place.any_instance.stub(:geocode).and_return("..")
  8.times do
    s = FactoryGirl.build(:shop_with_adress)
  end
end

Теперь этот код иногда становится зеленым, иногда нет.

 Failure/Error: s = FactoryGirl.build(:place)
 ActiveRecord::RecordInvalid:

это похоже на ошибку Gmaps4rails Adress invalid (?) Как мне заглушить gmaps4rails? Я действительно не понимаю, как применять подсказки из Как функции геокодирования stub gmaps4rails в тестах rspec? точно.. Может быть, потому что я новичок в stubbing/rspec.


person Yo Ludke    schedule 23.10.2012    source источник
comment
посмотрите здесь: github.com /apneadiving/Google-Maps-for-Rails/blob/master/spec/   -  person apneadiving    schedule 23.10.2012
comment
Хорошо, да, спасибо - так вы проверяете свой драгоценный камень. Как мне с этим работать? Должен ли я включить этот модуль геокодирования в свою папку поддержки (как это сделать, просто скопировать?)? Мне просто нужно добавить эту *args в мой заглушенный метод? Я не знаю, что с этим делать, извините :(   -  person Yo Ludke    schedule 23.10.2012


Ответы (1)


Вы можете скопировать заглушку на Gmaps4rails.geocode подробном здесь и при необходимости адаптируйте его под свои нужды.

Для настройки скопируйте и вставьте результат:

Gmaps4rails.geocode("your custom address")

Что представляет собой массив и скопируйте его:

Gmaps4rails.stub(:geocode) do |*args|
  your_custom_array
end

Очевидно, я рекомендую, как и в геме, создать собственный модуль поддержки спецификаций.

person apneadiving    schedule 23.10.2012
comment
Спасибо :) По крайней мере, встроенный теперь работает .. Попробую реорганизовать его в своем собственном модуле. - person Yo Ludke; 23.10.2012