Я использую gmaps4rails и пытаюсь разработать некоторые тесты.Как заглушить gmaps4rails функции geocode в тестах rspec?
У меня есть завод
factory :country do
sequence(:name) { |n| "Country#{n}" }
end
, который, очевидно, не распознается Google.
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
Спасибо за любые идеи.
ли не отвечаешь? – apneadiving
Привет apneadiving. Спасибо за ответ. Кажется, что неправильный адрес является ответом от Google. Правильно ли это звучит? Итак, как мне заглушить геокодирование? Я запускаю один тест country_specs.rb, в котором у меня есть прежде: каждый блок, который содержит 'Country.stub (: geocode)'. Я пробовал еще несколько вещей '.stub_geocode',' .stub (: gmaps4rails) 'и т. Д. Но геокодирование все еще выполняется. Я добавлю код модели к вопросу. Цените любые предложения, которые у вас есть –
он исходит от драгоценного камня. Для stubbing смотрите здесь: https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/spec/support/geocoding.rb – apneadiving