Приемочные испытания с RSPEC, private_pub и Resque

Я ищу небольшое руководство по написанию приемочных тестов для процесса, который использует gem private_pub Райана Бейтса ( https://github.com/ryanb/private_pub) и Resque.

В моем контроллере у меня есть действие execute, которое ставит в очередь процесс генерации файла в Resque, а затем делает AJAX-запрос для отображения модального окна "ожидания". Модальное окно содержит JavaScript для подписки на канал private_pub и ожидания сообщения на этом канале. По завершении процесса генерации файла в Resque работнике сообщение с вновь созданным именем файла помещается в private_pub. Javascript в модале получает сообщение и использует имя файла, чтобы начать загрузку файла в браузере.

Я ищу предложения по методам для запуска тестов этого процесса. Я подумывал о том, чтобы издеваться над сервером private_pub (не уверен, как этого добиться даже после большого количества Google), чтобы он просто возвращал предварительно подготовленный файл. По сути, я думаю, что мне нужен способ для осуществления моего рабочего процесса без необходимости запуска сервера private_pub и всей инфраструктуры Resque в моей тестовой среде.

1 ответ

Решение

Я бы порекомендовал заглушить звонок работнику Resque и просто вернуть то, что вы ожидаете, чтобы он вернулся. Затем протестируйте рабочий код Resque в отдельном тесте.

Если вашей целью является именно проверка функциональности модального окна, вы можете написать тест, который просто делает вызов работнику Resque и использует Capybara, чтобы определить, появляется ли модальное окно. В этом примере вы не захотите заглушить вызов Resque - просто завершите тест, когда обнаружите, что появляется модальное окно.

Другие вопросы по тегам