Если вы являетесь «подтверждением» предоставленной информации », то вы используете второй ответ DMKE. Возможно, вам потребуется отправить сообщение в форму для входа, чтобы сначала получить файл cookie сеанса, а затем использовать пост, а не получить форму, которая приведет к загрузке файла.
Если в результате использует javascript и iframe для загрузки файла, затем проанализируйте возвращенный html, извлеките фактический url для загрузки информации и загрузки данных из этого.
Мое личное предпочтение состоит в том, чтобы проверить мой код на копию файла, проверенную на контроль исходного кода, поэтому тесты моего собственного кода не зависят от того, какой иностранный сайт находится вверху и доступен. Я кодирую класс rake task/helper, чтобы получить свежую копию данных по мере необходимости, и иметь несколько простых тестов для проверки. Я могу декодировать файл данных во что-то, что имеет смысл.
Если вы проверяете, как именно данные декодируются, вам понадобится фиксированный входной файл. Если вы просто проверка, что «выглядят разумно», то вы можете
Звучит неправильно. Почему бы не проверить, отправляет ли контроллер ваш файл correnct (тип MIME, код ответа) и генерирует ли модель правильные данные (контент)? В спецификации интеграции я бы только тестировал, существует ли кнопка и что клик не будет взорвать ваше приложение. – DMKE
Извините, что не ясна. Все, что мне нужно, это получение правильного файла и проверка данных. Я просто не знаю, как получить файл с сайта с помощью Capybara. – user1496754
Точно моя точка. Вы можете просто получить файл с спецификацией контроллера; для этого вам не нужен тест интеграции/функции: в спецификации контроллера после 'get: show, id: 42, format:: csv',' response.body' будет содержать содержимое CSV. – DMKE