Rails 4 — геокодер достигает лимита запросов в тестовом наборе

При запуске моего тестового набора примерно в половине случаев он становится красным, потому что я достиг предела геокодирования в секунду:

Google Geocoding API error: over query limit.    

Я использую гем геокодера с google maps/places api.

Кажется, мне нужно установить какую-то опцию сна, но в документации геокодера это упоминается только для задачи rake. Как я могу настроить его или предотвратить слишком много запросов геокодирования в моем тестовом наборе в секунду?


person Kathan    schedule 01.02.2016    source источник


Ответы (3)


Хотя это и не относится к драгоценному камню геокодера, лучше всего, вероятно, каким-то образом отключить сервис.

У вас есть несколько вариантов:

  1. Вы можете включить кэширование в своей тестовой среде, чтобы делать только один внешний http-запрос в день. Руководства по Rails содержат несколько хороших примеров ActiveSupport::Cache. Соответствующий раздел — кэширование низкого уровня. Хотя это может сработать для вас, я думаю, что это слишком сложно для вашей ситуации.

  2. Я рекомендую полностью замаскировать внешнюю службу HTTP. Thoughtbot имеет несколько устаревшее, но все еще актуальное руководство по настройке Webmock, популярного библиотека для имитации внешних HTTP-сервисов. Он хорошо интегрируется со всеми популярными средами тестирования.

Надеюсь это поможет.

person J. Morgan Lieberthal    schedule 01.02.2016


Попробуй это :

after_validation :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }

Избегайте ненужных запросов API

person Gold-Banana    schedule 01.02.2016