Ответ 1
rspec
- полнофункциональная среда тестирования, которая позволит вам написать, что Rails рассматривает модульные тесты, функциональные тесты и интеграционные тесты. Все они выполняют Ruby-код через различные уровни вашего приложения Rails. Все эти тесты моделируют запросы к вашему Rails-приложению, но фактически не запускают приложение в сети по сети.
cucumber
- это платформа для тестирования интеграции на основе браузера, которая позволяет записывать автоматические тесты, которые выполняются против всего приложения Rails, доступного из автоматического веб-браузера. Это позволяет вам писать автоматические тесты поведения в браузере для JS или CSS. Cucumber обеспечивает уникальный угол для тестирования интеграции, в котором используется простая английская спецификация, сопоставляемая с кодом посредством регулярных выражений. Это позволяет использовать более естественную модель "Поведенческое развитие" - описание того, что веб-приложение должно делать на понятном языке с точки зрения пользователя.
capybara
- это конкретный веб-драйвер, питающий инфраструктуру тестирования интеграции cucumber
, которая использует безгласный веб-кит. Это позволяет запускать браузер без браузера (без интерфейса пользователя) Chrome/Webkit для автоматического тестирования. Это очень полезно как в области разработки, так и на удаленном сервере тестирования/непрерывной интеграции.
Итак, rspec
и cucumber
схожи с тем, что они тестируют фреймворки со своим способом указания вещей. rspec
имеет хороший DSL, который очень читабельен, будучи фактическим кодом. cucumber
отображает простые текстовые описания в реальный код.
Хотя cucumber
обычно используется поверх capybara, вы также можете использовать rspec
для тестирования интеграции capybara
. Тесты записываются либо в rspec, либо в огурце, но capybara
является механизмом интеграции под ним.