have_contentマッチャでコンテンツ内容を確認する
ページ内容をhave_contentマッチャで確認します。
Capybara / RSpec / Rails / Ruby
連載: Rails4+RSpec+Capybaraでよく使うマッチャ&メソッド22個+α
「」第回の今回はページ内容をhave_contentマッチャで確認します。
ちなみにここでいうコンテンツはページ内のテキストとなります。
have_content
マッチャでのコンテンツ内容確認を行うには
のようにマッチャを使います。
scenario
ブロックで書くと
となります。
前回のhave_title
マッチャも合わせて使うと
となります。
テストを分ける
上記ではscenario
ブロックの中でhave_title
マッチャとhave_content
マッチャを使いましたが、これだとhave_title
が失敗した時にhave_content
が成功なのか失敗なのかがわかりません。
そういう場合はテストケースを分けて
とすると良いです。
beforeを使う
テストケースを分けた場合、visit
を2回実行していてDRYではないのでbefore
ブロックを使ってvisit
メソッドをまとめます。
これでどちらのscenario
も実行前にbefore
ブロック内のvisit
メソッドが実行されます。
itを使う
各scenario
ブロックの中が1行なので、こういう時はit
とsubject
とshould
を使ってすっきり書けます。
テストを実行する
今回作成したテストを実行すると
view top page
should have title "江の島エンジニアBlog"
should have content "Rails4でCapybara入門"
となりちゃんと両方ともテストに成功しました。
次回はhave_linkマッチャを使ったリンクの確認を行います。
関連記事
- allメソッドで要素リストを取得する(2014/10/11)
- Basic認証が必要なページをテストする(2014/10/11)
- checkメソッドでチェックボックスを選択する(2014/10/11)
- chooseメソッドでラジオボタンから要素を選択する(2014/10/11)
- click_onメソッドでボタンをクリックする(2014/10/11)
- fill_inメソッドでフォームにテキストを入力する(2014/10/11)
- find_buttonメソッドでボタン要素を取得する(2014/10/11)
- find_by_idメソッドでid要素を取得する(2014/10/11)
- find_fieldメソッドでフィールド要素を取得する(2014/10/11)
- find_linkメソッドでリンク要素を取得する(2014/10/11)
- findメソッドでオブジェクトを取得する(2014/10/11)
- have_buttonマッチャで指定したボタンを確認する(2014/10/11)
- have_checked_fieldマッチャで指定したチェックボックス/ラジオボタンを確認する(2014/10/11)
- have_contentマッチャでコンテンツ内容を確認する(2014/10/11)
- have_cssマッチャで指定したタグの内容を確認する(2014/10/11)
- have_fieldマッチャで指定した入力フィールドを確認する(2014/10/11)
- have_linkマッチャでリンク内容を確認する(2014/10/11)
- have_selectマッチャで指定したセレクトボックスの選択内容を確認する(2014/10/11)
- have_titleマッチャでタイトル内容を確認する(2014/10/11)
- have_unchecked_fieldマッチャで指定したチェックボックス/ラジオボタンを確認する(2014/10/11)
- ログインが必要なページをテストする(2014/10/11)
- find&nativeメソッドでmeta要素をテストする(2014/10/11)
- nativeメソッドでネイティブオブジェクトを取得する(2014/10/11)
- selectメソッドでセレクトボックスから要素を選択する(2014/10/11)
- uncheckメソッドでチェックボックスを選択解除する(2014/10/11)