Ответ 1
К сожалению, видеомагнитофон очень несовместим с capybara-webkit. Дело в том, что веб-сайт capybara использует webkit, который находится в c. Webmock и Fakeweb, которые являются основой для видеомагнитофона, могут использоваться только для веб-запросов Ruby. Сочетание двух совлокальных действий, вероятно, будет монументальной задачей.
Я решил эту проблему двумя способами:
Первый (взломанный, но действительный) - это добавить в приложение новый файл javascript, который включен только в тестовую среду. Этот файл заглушает классы JS, которые создают внешние веб-запросы. Помимо чистого hackatude этого подхода, он требует, чтобы каждый раз, когда новый запрос был добавлен или изменен, вы также должны изменить заглушки.
Второй подход - перенаправить все внешние запросы через мой собственный сервер, эффективно проксируя все внешние запросы через мой сервер. У этого есть огромный недостаток, что у вас должно быть действие для всего, что вы хотите потреблять (вы можете обобщить его, с некоторой работой). Он также страдает тем фактом, что он мог бы удвоить время завершения запроса. Однако, поскольку запросы теперь сделаны Ruby, вы можете использовать видеомагнитофон во всей его славе.
В моих ситуациях подход № 2 был гораздо более полезным для меня благодаря тому, что мне нужен рубин, чтобы манипулировать данными, чтобы я мог сохранить исходный код javascript-агностик. Тем не менее, я успешно использовал подход №1.