Я использую видеомагнитофон с RSpec для тестирования тестового раздела кода API, и я сделал небольшой вызов.Как узнать, находится ли видеомагнитофон в режиме записи или воспроизведения?
В моем клиентском коде используется sleep
для запросов API ограничения скорости. Благодаря this elegant solution, теперь я могу перехватить sleep
сообщений с заглушкой из моих модульных тестов:
expect(subject).to receive(:sleep)
Проблема заключается в том, что в то время как я разрабатываю этот код, я должен удалить мои кассеты часто, но так как Я зарезал sleep
, нет ограничений по скорости для реальных запросов API, и спецификация взрывается.
Что [Я думаю] Я хочу сделать что-то вроде следующего:
expect(subject).to receive(:sleep) if !vcr.real_request?
Так что я не вмешиваюсь с субъектами sleep
, когда я записи кассету.
Я вижу интересный related discussion, но это похоже на другой случай, и я не вижу, как я могу использовать его напрямую. Тем не менее, это привело меня к обнаружению видеомагнитофонов (особенно before_playback
), но мне не ясно, как я буду экспортировать subject
в область действия блока или выполнить выполнение прокси-блока в область моего теста, чтобы сделать заглушку.
Любые мысли?
NB: Я использую функцию config.configure_rspec_metadata!
в моих spec_helper.rb
для автоматического захвата/имя моих кассет, если это делает никакой разницы (т.е. я не оборачивать каждый отдельный метод API явно в своем блоке VCR).
Я использую видеомагнитофон 2.9.3 и видеомагнитофон :: Cassette. запись? только действительно работает, если record_mode: один раз. – pduey