やったこと
System Spec を使ってみます。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
$ gem list | grep rspec-rails
rspec-rails (3.8.2)
調査
System Spec とは
Rails の SystemTestCase を Rspec から利用できるようにしたもの
SystemTestCase は E2E テストを実行することができます。
使ってみる
ファイル準備
$ mkdir spec/system
$ touch spec/system/tasks_spec.rb
app/views/tasks/new.html.erb
<button onclick="if (confirm('ok???')) { alert('pushed ok!!!'); }">
テストボタン
</button>
spec/system/tasks_spec.rb
require 'rails_helper'
RSpec.describe 'Tasks', type: :system do
it 'js test' do
visit '/tasks/new'
click_button('テストボタン')
expect(page.driver.browser.switch_to.alert.text).to eq 'ok???'
page.accept_confirm
expect(page.driver.browser.switch_to.alert.text).to eq 'pushed ok!!!'
page.accept_alert
end
end
System Spec を実行
$ rails spec spec/system/tasks_spec.rb