CapybaraシミュレーションリアルユーザーインタラクティブテストWebアプリケーション


Capybaraは、実際のユーザーのインタラクションをシミュレートすることで、Webアプリケーションをテストします.Rack::TestとSeleniumがサポートし、他のドライバもサポートしています.WebKitは外部gemでサポートされています.
コアメリット
  • は、RailsアプリケーションおよびRackアプリケーションについて、すぐに開梱されるように構成する必要はありません.
  • 直感的APIは、実際のユーザ動作をシミュレートする.
  • バックエンドは、テストバックエンドを置き換えることができます.たとえば、テストを変更することなく、高速headlessモードから実際のブラウザに切り替えることができます.
  • 強力な同期非同期プロセスの終了を手動で待つ必要はありません.

  • コンフィギュレーション
    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の作成