More Related Content
Similar to PHP Application E2E with Capybara (20)
More from Yoshiaki Yoshida (12)
PHP Application E2E with Capybara
- 4. Capybara is …
• E2E テストフレームワーク
• Ruby 製
• Capybara DSL で自然言語のように書ける
• Driver を選べる
• Rails だとデファクトスタンダード?
• Rails 専用ではなく汎用的に使える
- 7. Capybara 構成イメージ
{ ドライバ }
Cucumber
RSpec
Test::Unit
MiniTest::Spec
RackTest
Selenium
Capybara-webkit
Poltergeist
{ テストフレームワーク }
Capybara
- 8. Capybara で今回試した構成
{ ドライバ }
Cucumber
RSpec
Test::Unit
MiniTest::Spec
RackTest
Selenium
Capybara-webkit
Poltergeist
Capybara
{ テストフレームワーク }
- 10. Capybara DSL Sample 1
# Navigating
visit('/projects')
# Clicking links and buttons
click_link('Link Text')
click_button('Save')
# Interacting with forms
fill_in('First Name', :with => 'John')
choose('A Radio Button')
check('A Checkbox')
- 11. Capybara DSL Sample 2
# Querying
expect(page).to have_selector('table tr')
expect(page).to have_selector(:xpath,
'//table/tr')
# Scripting
page.execute_script("$('body').empty()")
# Debugging
save_and_open_page
page.save_screenshot('screenshot.png')
- 16. • Capybara (RSpec + Poltergeist)
• ActiveRecord と ActiveSupport も使う
• テストコードを Ruby っぽくシンプルに書ける
• factory_girl でテストごとに Fixture を投入する
• Fixture の投入はできる
• ただし運用面で困ってる点がある…(後述)
試してみた
- 23. • PHP (FuelPHP) だと難しいかも?
• E2E 専用環境があっても運用できなそう
• 複数の feature があるとデプロイどうするの?
• feature によってスキーマも違う場合がある
• factory_girl で Fixture を投入できるけど1環境
• factory_girl 使わないとパターンを再現できない
困ってる
- 24. • Rails なら問題なし
• bundle exec rake spec
• RAILS_ENV=test
• WEBrick スゴイ
• PHP だと…
• Nginx + php-fpm の環境がないとダメ…
困ってる