LoginSignup
12
13

More than 5 years have passed since last update.

CapybaraでE2Eテストを始める

Last updated at Posted at 2013-11-28

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のドライバについては下記リンクが詳しいです。
http://qiita.com/take/items/779747e0981355e569ad

 

$ bundle install

ここでqtがないからインストールできない的なエラーが出るかもしれません。上記リンクに記述がある通りcapybara-webkitがqtに依存しているからです。
その場合は下記リンクより自分の環境に合わせた解決策を実行してみてください。(私の場合はmacだったので、brew install qtでできました)
https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit

インストールできたら、次にrspec initでspecディレクトリとspec_helper.rbを作ります。

$ bundle exec rspec --init

capybaraを使うためspec_helperに次の記述を追加します。

# spec_helper.rb
require 'capybara'
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' 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

あとはアサーションを書いてキャプチャを撮ったりも簡単にできるのでどんどん書いて実行していってみてください。

12
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13