Я разрабатываю приложение Rails с большим количеством зависимостей от внешних API, например Delicious.Все API имеют два рабочих процесса:
- При первом вызове они собираются загрузить все данные с начала времени.
- Все последующие вызовы будут загружать данные, отфильтрованные по времени последнего выполнения.(если поддерживается).
Тестирование их в реальном времени означает, что я должен создать тестовую учетную запись для каждого API или, по крайней мере, использовать свою личную.Даже с VCR
, потому что они будут вызваны один раз.И моя самая большая проблема: мне пришлось бы много возиться с Date
и Time
, чтобы эмулировать два разных рабочих процесса, упомянутых выше.Хотя Timecop
делает это действительно легко, это похоже на боль в заднице.
Другой подход состоит в том, чтобы полностью подделать вызовы API и их соответствующие ответы, но это означает, что никаких реальных тестови более того, я бы никогда не осознал изменений или проблем с API.
Есть предложения?Может быть, хорошая комбинация обоих способов?