Capybara
参考:
teamcapybara/capybara: Acceptance test framework for web applications – GitHub
ドキュメント
参考:
Documentation for capybara | RubyDoc.info
使い方
参考:
Headless Chrome でスマホ用画面のテストと、PC 画面用テストを行う | scramble cadenza
Rails に Capybara + Selenium を導入して Chrome Headless モードで実行する手順 – Qiita
Ruby で Selenium を使ってサクッとスタンドアローンなブラウザテストを作成する | Rails Webook
まとめ
参考:
どんなブラウザ操作も自由自在!逆引き Capybara 大辞典 – Qiita
Rspec Capybara で実際テストを書いて困ったシチュエーションの解消法 – Qiita
概要
参考:
Capybara の README 意訳 | おもしろ web サービス開発日記
導入
参考:
Capybara + RSpec + Chrome headless による E2E テスト | 酒と涙とRubyとRailsと
Rails + Capybara + Rspec をセットアップして簡単なテストが通るまで | もふもふ技術部
Selenium + Capybara + RSpec で自動テストしてみる 準備編 | YoshinoriN’s Memento
Selenium + Capybara + Minitest で自動テストしてみる | YoshinoriN’s Memento
レガシープロジェクトで ruby の capybara を使って仕様化テストをやってみる | けんごのお屋敷
Integration Testing Ruby on Rails with Minitest and Capybara | Semaphore
Testing Your App In The Browser With Capybara (Rails Backend, React Frontend) | Ethan Ryan
入門
参考:
RSpec / Capybara 入門 | Ruby on Rails with OIAX
driven_by
参考:
driven_by – ActionDispatch::SystemTestCase | Ruby on Rails API [Official]
visit
参考:
Method: Capybara::Session#visit — Documentation for capybara | RubyDoc.info
save_screenshot
参考:
Method: Capybara::Session#save_screenshot — Documentation for capybara | RubyDoc.info
page
参考:
Method: Capybara::DSL#page — Documentation for capybara | RubyDoc.info
fill_in
参考:
Capybara でフォーム入力をシミュレートしてテストする – Qiita
fill_in メソッドでフォームにテキストを入力する | Sportech なエンジニア Blog
「fill_in でフォームの text_area を埋めたいが、label がない…」と困ったら、id を使おう | 文系人間がエンジニアを目指すブログ
fill_in メソッドでフォームにテキストを入力する|Sportech なエンジニア Blog
fill_in を使ったステップで Capybara::ElementNotFound | Projeto: Vermelho
Method: Capybara::Node::Actions#fill_in — Documentation for capybara | RubyDoc.info
How does fill_in work in Rspec/Capybara? – Stack Overflow
Is it possible to fill_in a number field wo/ labels with Capybara? – Stack Overflow
check / uncheck
参考:
check メソッドでチェックボックスを選択する | Sportech なエンジニア Blog
uncheck メソッドでチェックボックスを選択解除する | Sportech なエンジニア Blog
How to check a checkbox in capybara? – Stack Overflow
select
参考:
Method: Capybara::Node::Actions#select — Documentation for capybara | RubyDoc.info
date_field / date_select
参考:
Capybara で date_select の月を選択する – Qiita
How to select a date in a Rails date_field form helper using Capybara – Stack Overflow
find
参考:
Method: Capybara::Node::Finders#find — Documentation for capybara | RubyDoc.info
has_text?
参考:
Method: Capybara::Node::Matchers#has_text? — Documentation for capybara | RubyDoc.info
has_css?
参考:
Method: Capybara::Node::Matchers#has_css? — Documentation for capybara | RubyDoc.info
execute_script
参考:
How to fill_in datepicker using Capybara, Rails, MiniTest spec – Stack Overflow
Actions
参考:
RSpec + Capybara でラジオボタン/セレクト/チェックボックスのフォーム要素をテスト | EasyRamble
Module: Capybara::Node::Actions — Documentation for capybara | RubyDoc.info
raise_error
参考:
Capybara の feature spec で raise_error でテストしたら internal server error – Qiita
reset_sessions!
参考:
Method: Capybara.reset_sessions! — Documentation for capybara | RubyDoc.info
Minitest integration testing: session not tearing down? – Stack Overflow
Puma を使う
参考:
Capybara で使用する server を Puma にする | 日々雑記
テスト実行時に Puma のログを表示しない
test_helper.rb
で Puma の設定を行う。オプションとして Silent: true
を渡す。
Capybara.server = :puma, { Silent: true }
参考:
Rspec 3.7.0 is showing Puma logs during spec suite · Issue #1897 · rspec/rspec-rails – GitHub
url_helpers
参考:
Capybara doesn’t find my route in engine – Stack Overflow
app_host / default_host
参考:
Ruby on Rails App Testing with Rspec and Capybara – Stack Overflow
アセット
参考:
Rails Engine で Capybara を導入しようとしてハマったこと – Qiita
Assets are not loaded during capybara/rspec spec – Stack Overflow
ホスト/ポート番号
参考:
Poltergeist で動いているサーバの host とポートを知る – Qiita
Capybara で実行中のサーバーのポート番号を取得する | Tbpgr Blog
Configuring host and port for Selenium/Capybara | Robert Reiz
how to get the host and port of the current execution – Stack Overflow
Session
参考:
Class: Capybara::Session — Documentation for capybara | RubyDoc.info
Net::ReadTimeout エラー
参考:
Capybara + Selenium WebDriver による E2E テストで Net::ReadTimeout への対応 (ヘッドレス Chrome の設定例) – Qiita
Net::ReadTimeout on first test using selenium · Issue #1305 · teamcapybara/capybara – GitHub
Capybara/Selenium gets a Net::ReadTimeout randomly on location.reload() – Stack Overflow
Tips
参考:
Rspec Capybara で実際テストを書いて困ったシチュエーションの解消法 – Qiita
6 Ways to Remove Pain From Feature Testing in Ruby on Rails | Gaslight
Five Capybara Hacks to Make Your Testing Experience Less Painful | Cognizant Quick Left
Page Object デザインパターン
参考:
一休.com の E2E テスト事情 ギリギリ話せるところまで話します | Speaker Deck
PageObject デザインパターンを利用して画面変更に強い UI テストを作成する | 株式会社 SHIFT
PageObject パターンではメソッドの返り値をどうするのが良いのか | ひびテク
Page オブジェクトパターン Selenide のお作法 – Qiita
Page Object Design Pattern (ページオブジェクトパターン) | アルファを求めるブログ
ページオブジェクト | Selenium Python Bindings 2 ドキュメント (kurozumi.github.io)
Page Object Model (POM) – Design Pattern | tajawal
Selenium Test Guide: Getting Started with Page Object Pattern | Pluralsight
Page Object Pattern | Assert Selenium
Page Object Design Pattern – Test Design Considerations | Selenium Documentation