RSpecを実装していて個人的に思うことがあるのですが、RSpecでFactoryBot・Capybaraというライブラリを利用していて、どの部分がRSpecなのかCapybaraなのかが区別がつかないことがあります。

開発者としては、その辺りはしっかりと区別できるようにしておきたいところだなと思い、今回はRSpecの中でも特にCapybaraについて内容を整理しておこうかなと思います。

Capybaraとは

RSpecのテストの際に、ブラウザのページに表示されている部品に対して操作したり検証したりすることができます。

例えば、ブラウザに対してURLを入力してページにアクセスしたり、Webページ内のリンクをクリックしたりする操作を、コードで記述することができます。

そして、テスト結果のページを検証することもできます。

Capybaraは、主にSystemスペックで利用されます。

メソッド一覧

操作系

メソッド説明
visitvisit top_path
visit current_path
指定したURLへアクセスする
ページをリロードする
操作系メソッド一覧

要素の取得

ページ内に存在する要素はオブジェクトとして取得することができます。

メソッド説明
findfind ‘h1’
find ‘.class’
要素の取得
クラス属性による取得
find_by_idfind_by_id ‘#id’ID属性による取得
要素の取得メソッド一覧

取得した要素オブジェクトに対して設定されている属性値を取得することができます。

メソッド説明
[:属性名]
[‘属性名’]
[:style]
[‘aria-value’]
属性名を指定する
要素の属性値の取得メソッド

検証マッチャ一覧

ページの内容に対して検証を行うことができます。

「expect().to ~」コードの後にマッチャを指定して検証します。

マッチャ説明
have_contenthave_content ‘テキスト’指定した内容が表示されているか
have_selectorhave_selector ‘h1’, text: ‘テキスト’
have_selector ‘.class’, text: ‘テキスト’
have_selector ‘#id’, text: ‘テキスト’
CSSセレクタが指定されている要素に指定した内容が表示されているか
検証マッチャ一覧

更新日 : 2020年9月12日

投稿者: TWEI

趣味はプログラミング。 以前は仕事でプログラミングをやっていました。現在はWebエンジニアを目指して勉強中。 勉強で得た知識などをブログで発信していく予定です。

コメントをどうぞ

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

CAPTCHA