CapybaraでE2Eテストを始める
WAFに依存しない形でCapybaraを導入してE2Eテストを書けるようになるところまでの導入です。テストの実行自体はRSpecを使います。
$ mkdir capybara-test $ cd capybara-test
適当にGemfileを作ってbundle installで入れます
# Gemfile source "http://rubygems.org" gem "rspec" gem "capybara" gem "capybara-webkit"
今回はcapybaraのドライバーはcapybara-webkitを使用しています。
※capybaraのドライバについては下記リンクが詳しいです。
poltergeist - Capybaraを使う際に知っておきたいこと - Qiita [キータ]
$ bundle install
ここでqtがないからインストールできない的なエラーが出るかもしれません。上記リンクに記述がある通りcapybara-webkitがqtに依存しているからです。 その場合は下記リンクより自分の環境に合わせた解決策を実行してみてください。(私の場合はmacだったので、brew install qtでできました)
Installing Qt and compiling capybara webkit · thoughtbot/capybara-webkit Wiki · GitHub
インストールできたら、次にrspec initでspecディレクトリとspec_helper.rbを作ります。
$ bundle exec rspec --init
capybaraを使うためspec_helperに次の記述を追加します。
# spec_helper.rb require 'capybara/rspec' require 'capybara-webkit' # ここは各自合わせて下さい Capybara.app_host = 'url' Capybara.javascript_driver = :webkit RSpec.configure do |config| … config.include Capybara::DSL end
ここまでできたらあとはspecファイルをsepcディレクトリ内に作っていってテストを実行していきます。
# spec/login_spec.rb require 'spec_helper' describe 'login', :type => :feature, :js => true do it do visit 'http://test.com/login' fill_in 'login', :with => 'test_user' fill_in 'password', :with => 'password' click_button 'Login' expect(page).to have_content('Logged in as') end end
詳しい書き方はREADMEを見て下さい。
https://github.com/jnicklas/capybara
あとはアサーションを書いてキャプチャを撮ったりも簡単にできるのでどんどん書いて実行していってみてください。