Capybara

参考:

Capybara [Official]

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

チートシート – 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 を使って仕様化テストをやってみる | けんごのお屋敷

Ruby でスクレイピングしてみました。- Qiita

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

fill_in が上手く動作しない – Qiita

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

Net::ReadTimeout: Net::ReadTimeout and Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start on Rails 5.1.beta System Test – 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)

PageObject | Martin Fowler

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

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です