初めに
学習のメモがわりに残していきます。
前提として、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
と打ち込み正常に動作したら完成です。