プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Rspec】Capybaraの構文まとめ
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Rspec】Capybaraの構文まとめ

12.01

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

Capybaraは、Rails5.1からデフォルトで入っているE2Eテスト(Featureテスト)をするのにはうってつけのGemになります。(5.0未満だと別途インストールが必要)

Capybaraは普通のRubyの構文と違う独自DSLで記述する必要があります。なので使える基本的な構文をご紹介します。

DSL

Capybaraには独自のDSLがあります。

scenario

通常のRspecにはdescribeや、it等の起点があると思いますが、Capybara独自の起点になります。

メソッド

visit [url]

特定のURLにアクセスする。

fill_in 'ラベル内容', with: '入力内容'

「ラベル内容」という名前のラベル(<label>要素)に対応するテキストボックスに対して「入力内容」という値を入れます。

click_button 'ボタン名'

「ボタン名」というvalueの値のボタンをクリックします。

click_buttonの注意点

起動されたアクションが完了する前に次の処理に移ってしまうことがあります。なので、最低でも一つ以上のエクスペクテーション(expect)を実行して処理の完了を待つようにしましょう。

click_link “リンク名”

指定したリンクをクリックする。

check “チェックボックス名”

指定したチェックボックスをオン状態にする。

uncheck “チェックボックス名”

指定したチェックボックスをオフ状態にする。

choose “ラジオボタンのラベル名”

ラジオボタンの指定したラベルを選択する。

select “オプション名”, from: “メニュー名”

セレクトボックスから指定したメニューを選択する。

save_and_open_page

行を挿入した際に表示されているHTMLを一時保存します。テストが失敗している箇所で挿入すれば原因調査に使えたりします。
なお、システムスペックやフィーチャースペックが完了したら基本的には不要なメソッドになりますのでコミット時は必ず削除をするようにしましょう。

Lanchy gem

lanchyをGemfileに追加してbundleインストールすると自動でHTMLを起動することができるので楽です。

1
2
3
4
group :test do
  gem 'capybara', '~> 2.13.0'
  gem 'launchy', '~> 2.4.3' ★追加
end

スポンサーリンク
  • 2019 12.01
  • miyabisan2
  • コメントを書く
  • Rspec, Ruby, Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 03.21

    ソフトウェアテストの基礎知識(モックとスタブ、テストピラミッド、テストケース例、負荷テスト)

  2. 2020 11.17

    【Ruby on Rails】「Enum」について

  3. 2019 12.07

    【Ruby on Rails】「ページング」の実装(kaminari)

  4. 2018 06.15

    【Ruby】「オブジェクト」、「クラス」の扱い方、継承など

  5. 2020 01.10

    【Ruby on Rails】「cancancan」について

  6. 2019 11.24

    【セキュリティ】CSRF(クロスサイトリクエストフォージェリ)とは?

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Rspec】FactoryBotでデータを準備する。

【Rspec】テストコードの処理の共通化(before…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー