はじめに
初心者なりにまとめたものになりますので、諸先輩方からは何書いてんだおめえと感じる部分があると思います。
そう感じた際は、お手数ですが、コメント頂けると幸いです。
内容は、自分がテストコードを書く際に使用した物の構成になります。
目次
-
visit
-
expect
-
マッチャ(matcher)とは
-be_valid
-include
-eq
-have_content
-have_no_content
-have_selector
-have_link
-change -
find().click
-
find().hover
-
fill_in
visit
リクエストを送り、指定されたページへ遷移するためのコード
下のように記述することで、prefixにルーティングされているpathのビュー先へ遷移する
visit tweets_path
visit 「prefixのパス」_path
expect
「アプリの実際の挙動」と「製作者が想定している挙動」が一致するかどうかを判断する記述
マッチャ(matcher)と呼ばれる検証する条件を記述するコードが後ろに付属する
expect(「検証したいデータ」).to 「マッチャ」
マッチャ(matcher)とは
expectで指定した引き数に対して、検証したい条件を引き数へ定義する記述
様々なマッチャが存在するが、一部を記述する
be_valid
expect(「検証したいデータ」).to be_valid
- expect内の引き数が真であるかどうかを検証する
include
expect(「検証したいデータ」).to include(「expectの引き数に含まれると思われるデータ」)
- include内の引き数がexpect内の引き数に含まれるかを検証する
eq
expect(「検証したいデータ」).to eq(「expectの引き数と一致するデータ」)
- eq内の引き数がexpect内の引き数と一致するかを検証する
have_content
expect(「検証したいデータ」).to have_content('「expectの引き数に存在する文字列」')
- have_content内の引き数がexpect内の引き数に存在する文字列かを検証する
have_no_content
expect(「検証したいデータ」).to have_no_content('「expectの引き数に存在しない文字列」')
- have_no_content内の引き数がexpect内の引き数に存在しない文字列かを検証する
have_contentと対照的なマッチャ
have_selector
expect(「検証したいデータ」).to have_selector('「expectの引き数に存在するセレクタ」')
- have_selector内の引き数がexpect内の引き数に存在するセレクタかを検証する
主に画像が存在するのかを判断するために使用する
have_link
expect(「検証したいデータ」).to have_link('「expectの引き数に存在するリンク」')
- have_link内の引き数がexpect内の引き数に存在するリンクかを検証する
change
expect(「検証したい動作」).to change('「model名」.count').by(「数値」)
- change内の引き数がexpect内の引き数の動作を行なった際に、
「model名」に存在するデータが定義した「数値」に変化するかを検証する
find('「クリックさせたい項目」').click
クリックさせたい項目のものをクリックさせる
find('「クリックさせたい項目」').click
find('「カーソルを合わさせたい項目」').hover
カーソルを合わさせたい項目のものをクリックさせる
find('「カーソルを合わさせたい項目」').click
fill_in '「フォームの名前」', with: '「入力する文字列」'
「フォームの名前」へ「入力する文字列」を入力させる記述
fill_in '「フォームの名前」', with: '「入力する文字列」'
おわりに
自分がテストコードを書く際に使用した物のまとめになります。