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

Rspec モデルの異常系単体テストコードについて

Posted at

初めに

学習のメモがわりに残していきます。
前提として、RSpec,FactoryBotの導入は済んでいる。
実際にファイルに記述するところからスタートします。

単体テストコードの用語について

単体テストコードの用語を説明しながら進んでいきます。今回はユーザーの新規登録機能について書いていきます。

describe

descibeとはテストコードのグループ分けを行うメソッドのことです。
どの機能に対してテストを行うかを分けdo~endの中に記述します。

it

itもグループ分けを行うメソッドです。itの場合はdescribeで分けたグループをより詳細に分けます。itで分けたグループのことをexampleとも呼びます。こちらもdo~endの中に記述します。

Valid?

valid?はバリデーションを実行させてエラーがあるかどうか判断するメソッドです。
エラーがない場合はtrueをある場合はfalseを返します。またエラーの内容を示すメッセージを生成します。

errors

errorsとはインスタンスにエラーがある場合その情報を示してくれます。このときfull_messgesメソッドを使用します。
full_messagesメソッドを使用することによってどのようなerrorsが出ているのかを確認できます。

エラーメッセージの確認

早速エラーメッセージの確認をしていきます。今回はemailが空の時は登録できないことを検証します。
なので@user.email=""と書きemailが空であることを示します。
そのあとはbinding.pryを使用して確認します。

ターミナル上で

bundle exec rspec spec/models/user_spec.rb

と打ち込むと以下の画像のように止まります。

コンソール上に@user.vaild?と打ち込むとfalseとでます。
@user.errors.full_messagesと打ち込むと以下の画像のようにエラー文が出てきます。

あとはエラー文をコードに以下の画像のように打ち込みます。

最後にターミナル上で

bundle exec rspec spec/models/user_spec.rb

と打ち込み正常に動作したら完成です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?