огурец капибара как это работает - PullRequest
5 голосов
/ 20 января 2011

Я использую капибару и огурец в своем приложении rails3.Все работает просто отлично.Однако я не понимаю, как работают тесты.

Допустим, у меня есть стандартный тест на огурцы.Я не использую @selenium и т. Д. Это простой ванильный тест.Теперь, когда я запускаю

bundle exec cucumber

, этот сервер rails запускается на порту?Если да, то какой номер порта?Также в обычном ванильном случае капибара использует рейк-тест.Однако реечный тест не несет ответственности за работу сервера.Так что я все в замешательстве, как все это работает.Какую роль играет огурец.Какую работу выполняет рэкет-тест и что делает капибара.

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

1 Ответ

5 голосов
/ 20 января 2011

Хотя я не знаю самых глубоких деталей того, как это работает. Но я делаю достаточно, чтобы дать вам некоторую перспективу.

Cucumber - это фреймворк для приемочного тестирования в рубине, он позволяет писать приемку на простом английском языке. Теперь в целом он находится поверх Webrat или Capybara, которые обеспечивают его истинную силу, то есть тестирование с имитацией браузера или с помощью автоматического браузера.

Capybara или Webrat упрощают запуск приемочных тестов. Capybara упрощает использование различных драйверов для запуска приемочных испытаний. Драйверы, т. Е. Selenium, стойкость или испытание в стойке. В ванильном случае, rack-test используется для симулированного тестирования браузера.

Rack-Test сам отвечает за создание сеанса, в котором вы выполняете свои тесты, определения шагов и т. Д. Были созданы capybara. Таким образом, в основном не существует сервера, на котором выполняется просто сеанс (если быть точным, mock-сеанс), созданный с помощью rack-test. Capybara теперь предоставляет методы поиска, сопоставления и т. Д. Поверх этого сеанса, созданного драйвером (тестирование в стойке или другое), чтобы помочь вам создать свои собственные определения шагов.

Cucumber запускает шаги, то есть искатели / сопоставители и т. Д. В них, во время сеанса и ваших тестов.

...