LoginSignup
0
0

More than 1 year has passed since last update.

複合テストコードのまとめ

Last updated at Posted at 2022-06-26

はじめに

初心者なりにまとめたものになりますので、諸先輩方からは何書いてんだおめえと感じる部分があると思います。
そう感じた際は、お手数ですが、コメント頂けると幸いです。

内容は、自分がテストコードを書く際に使用した物の構成になります。

目次

  • 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: '「入力する文字列」'

おわりに

自分がテストコードを書く際に使用した物のまとめになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0