CapybaraシミュレーションリアルユーザーインタラクティブテストWebアプリケーション
2093 ワード
Capybaraは、実際のユーザーのインタラクションをシミュレートすることで、Webアプリケーションをテストします.Rack::TestとSeleniumがサポートし、他のドライバもサポートしています.WebKitは外部gemでサポートされています.
コアメリットは、RailsアプリケーションおよびRackアプリケーションについて、すぐに開梱されるように構成する必要はありません. 直感的APIは、実際のユーザ動作をシミュレートする. バックエンドは、テストバックエンドを置き換えることができます.たとえば、テストを変更することなく、高速headlessモードから実際のブラウザに切り替えることができます. 強力な同期非同期プロセスの終了を手動で待つ必要はありません.
コンフィギュレーション
CapybaraにはRuby 1.9.3+が必要です.
Railsアプリケーションはhelperファイルに次の行を追加できます.
Rackアプリケーション:
Javascriptをテストするか、リモートテストを行う必要がある場合は、ドライバを構成する必要があります.
Capybaraは、Cucumber、RSpec、Test::Unit、MiniTest::Specと組み合わせて使用できます.FIXME
CapybaraのデフォルトではRackTestドライバが使用され、Selenium、Capybara-webkit、Poltergeistもサポートされています.
DSL
CapybaraのDSLはとても分かりやすいです.いくつかの例を見てみましょう.
アクセス:
リンクまたはボタンをクリックします.
フォーム:
XPath
検索
一部のドライバはJavaScriptの実行をサポートします.
プロジェクトのホームページ
http://jnicklas.github.io/capybara/
https://github.com/jnicklas/capybara
SegmentFaultの作成
コアメリット
コンフィギュレーション
CapybaraにはRuby 1.9.3+が必要です.
Gemfile
に次の行を追加し、bundle install
を実行します.gem 'capybara'
Railsアプリケーションはhelperファイルに次の行を追加できます.
require 'capybara/rails'
Rackアプリケーション:
Capybara.app = MyRackApp
Javascriptをテストするか、リモートテストを行う必要がある場合は、ドライバを構成する必要があります.
Capybaraは、Cucumber、RSpec、Test::Unit、MiniTest::Specと組み合わせて使用できます.FIXME
CapybaraのデフォルトではRackTestドライバが使用され、Selenium、Capybara-webkit、Poltergeistもサポートされています.
DSL
CapybaraのDSLはとても分かりやすいです.いくつかの例を見てみましょう.
アクセス:
visit('/projects')
リンクまたはボタンをクリックします.
click_link('id-of-link')
click_button('Save')
フォーム:
fill_in('First Name', :with => 'John')
fill_in('Password', :with => 'Seekrit')
fill_in('Description', :with => 'Really Long Text...')
choose('A Radio Button')
check('A Checkbox')
uncheck('A Checkbox')
attach_file('Image', '/path/to/image.jpg')
select('Option', :from => 'Select Box')
XPath
page.has_selector?(:xpath, '//table/tr')
検索
find_field('First Name').value
find('#navigation').click_link('Home')
一部のドライバはJavaScriptの実行をサポートします.
page.execute_script("$('body').empty()")
result = page.evaluate_script('4 + 4');
プロジェクトのホームページ
http://jnicklas.github.io/capybara/
https://github.com/jnicklas/capybara
SegmentFaultの作成