Как заставить огурец и капибару использовать пути http: // вместо пути file: ///? - PullRequest
0 голосов
/ 15 июля 2011

Я использую omniauth и огурец с новым приложением. У меня все работает, и я пытаюсь добавить соответствующие тесты на огурцы. Я продолжал сталкиваться с странными ошибками в тестировании - ошибками, которые я не получаю при выполнении тех же шагов вручную

Через "покажи мне страницу" я сузил это до того факта, что когда огурец что-то делает, он делает это через путь к файлу (например, file:///path/to/app/tmp/capybara/capybara-201107151148029152254898.html) вместо пути http (например, http://localhost:3000/) .

Почему мои тесты на огурцы проходили через пути к файлам вместо путей по http; и как мне исправить эту ситуацию?

1 Ответ

1 голос
/ 14 ноября 2011

Я могу только догадываться, что Capybara реализует «покажи мне страницу» в виде следующих шагов:

  1. Возьмите источник HTML с текущей страницы и запишите его в файл
  2. Открыть этот HTML-файл

Полагаю, ваши тесты отлично работают с вашим приложением, используя HTTP. (Вы всегда можете убедиться в этом, посмотрев свои файлы журналов.) Но «показать мне страницу» не может просто открыть URL-адрес, который он тестировал, поскольку его содержимое может меняться от запроса к запросу.

Пример: тест отправляет комментарий с помощью POSTing к /comments. Если по какой-либо причине это не получится, и Capybara откроет /comments (URL, вызвавший исключение), он выдаст запрос GET и не сможет предоставить вам содержимое, которое он видел.

...