После просмотра RailsConf видео в ActionDispatch:: systemTestCase, я был рад включить его в свое текущее приложение. В настоящее время наша установка тестового набора использует следующее:
- rspec
- factory_girl
- capybara
# for feature specs
- database_cleaner
# for feature specs, mostly for testing js
- selenium-webdriver
# for feature specs
- capybara-webkit
# for feature specs
Трудно было настроить конфигурацию для нашей текущей настройки, но в итоге мы ее работали, во многом благодаря статье Авди Гримма под названием: Настройка database_cleaner с Rails, RSpec, Capybara и Selenium.
Моя надежда состояла в том, чтобы использовать встроенные системные тесты рельсов, выпущенных в рельсах 5.1
. Поскольку в rails теперь встроено системное тестирование: все, что мне нужно будет беспокоиться о настройке, следующее:
-
rspec
-
factory_girl
И это потому, что ActionDispatch::systemTestCase
заботится о capybara
, database_cleaner
, и он уже настроен для драйвера selenium
.
Например: в настоящее время мой feature specs
написан так (Capybara в контексте RSpec):
#spec/features/blogs/creating_blogs_spec.rb
require "rails_helper"
RSpec.feature "Logged in User can create a blog" do
before do
create(:logged_in_user)
end
scenario "successfully", js: true do
...
end
end
Таким образом, типичная спецификация интеграции/функции/системы может выглядеть как для набора тестов, настроенного с параметрами rspec
, database_cleaner
, factory_girl
и capybara
. Я хотел бы преобразовать его в использование ActionDispatch::systemTestCase
.
Однако: я хотел бы использовать ActionDispatch::systemTestCase
в контексте rspec
.
Видео RailsConf, приведенное выше, показывает, как ActionDispatch:: systemTestCase работает в контексте шаблона набора тестов по умолчанию rails (например: minitest с тесты, расположенные в каталоге test
), но в нем не обсуждалось, как использовать ActionDispatch:: systemTestCase в контексте RSpec.
Я не мог найти никаких ресурсов для создания встроенных системных тестов rails, настраиваемых с помощью RSpec, в том числе в разделе системного тестирования направляющих рельсов. Возможно ли это?