Могу ли я по-прежнему использовать драйверы для тестирования системы Rails? - PullRequest
1 голос
/ 13 апреля 2020

Системные тесты Rails используют Capybara. Capybara использует драйвер rack_test по умолчанию, в то время как Системные тесты используют selenium по умолчанию.

Драйверы Capybara:

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

1 Ответ

0 голосов
/ 13 апреля 2020

Системные тесты запускаются с использованием Capybara. Капибара использует драйверы для завершения тестирования. Драйверы Capybara могут быть определены как:

Драйвер является частью Capybara, которая фактически управляет веб-страницей как серией элементов DOM - Rails 5 Test Prescribs - Noel Rappin.

Capybara по умолчанию использует драйвер rack_test, более быструю, но JavaScript незнакомую версию. , в то время как Системные тесты Rails используют по умолчанию, более медленную, но Javascript осведомленную версию, селен - думаю, что этот код устанавливает Rails по умолчанию.

Я хотел бы узнать причины по умолчанию и, если бы я все еще мог использовать rack_test. Я нашел цитату из оригинального PR:

Я выбрал драйвер Selenium по умолчанию, потому что цель добавления системного тестирования в Rails состоит в том, чтобы начальная установка была абсолютно нулевой. Capybara делает это с помощью Rack Test по умолчанию, но это не очень полезная демонстрация достоинств тестирования системы, поскольку она не поддерживает тестирование JavaScript. Комментарий в PR от кодов Эйлин

Так что нет никаких технических причин выбирать Selenium vs Rack. Selenium был выбран, так как он был более полнофункциональным по умолчанию.

Тест в стойке ограничен и описан следующим образом:

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

Rails conf 2018 - Сэм Фиппен

Если ваш системный тест не использует Javascript, вы можете рассмотрите использование rack_test вместо этого. Однако это компромисс - стойка будет быстрее, потому что она не знает о Javascript, но не может заменить сложность физического браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...