1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails]テストコードを学ぼう

Last updated at Posted at 2021-07-16

はじめに

ご意見やご指摘など頂けますと大変助かります。
今後のITの世界へ入る身分として、是非ともご教授頂ければと思います。
また、自分自身の成長と共に
初学者の方々の力になればと思い少しずつ共有できればと思います!

テストとは。

アプリケーションの挙動を確認するためのコードのことです。
手動でぽちぽちとブラウザで挙動を確認するよりも断然効率が良いです。

手動によるデメリット
・人為的なミスの可能性
・仕様変更の手間(もう1回全部やり直し)
・確認した記録が残らない

テストコードを学ぶポイント

・細かい記述は、調べれば良い。覚える必要はない。
・どの部分を確認したいのかを明確にする。
・不安ならば、「binding.pry」

テストコードで登場するもの列挙

*私が学習した範囲で列挙します

Rspec
Ruby on Railsのテストコードを書くために用いられるGem

rails_helper
Rspecを用いてRailsの機能をテストするときに、共通の設定を書いておくファイル

describeメソッド
テストコードのグループ分けを行うメソッド
do~endの間に、さらにdescribeメソッドを記入することで、入れ子構造にもできる。

itメソッド
describeメソッドよりも詳細にグループ分けができ、
どのようなテストを行うのか明記する。

example
itメソッドで分けたグループを指す。
これから行うテストコードの内容についてタイトルで示している。
タイトルの部分を""で記載している。
*個人的に重要なんではないかと考えています。

valid?メソッド
バリデーションを実行させて、エラーの有無を判断する。

expectation
検証した結果の挙動が想定通りなのかを確認する構文のこと。
__expect().to matcher()__が雛形。
テストの内容に応じて引数やmatcherを変えて記述。

matcher
「expectの引数」と「想定した挙動」が一致しているかどうかを判断する。
複数種類がある。

eq
「expectの引数」と「eqの引数」が等しいことを確認するマッチャ。

expect(120 + 180).to eq(300)

include
「expectの引数」に「includeの引数」が含まれていることを確認するマッチャ。

expect(['赤', '青', '黄', '黒']).to include('青')

errorsメソッド
インスタンスにエラーがある際に、そのエラー内容を返すメソッド。

*今までエラーの画面を見て「ダメか・・・」でブラウザを閉じていましたが、
エラーに記載の内容は__かなり重要__だったことを理解しました。

full_messagesメソッド
エラーの内容から、エラーメッセージを配列として取り出すメソッド。
以下のようなエラー。

"○○○ can't be blank"

終わり

現在学習している範囲ではおおよそ以上の通りですが、
初めに学習するものこそ基礎の基礎で学ぶことだと思います。
備忘録という形ではありますが、
1つ1つ積みあげ、テストの理解に努めます!

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?