テストコードで使用される用語って何があるの?
今日は、テストコードで用いられる用語について解説していきます。
まずテストコードとは、ユーザーが操作する上で開発者の想定通りに動作するかをテストするためのコードです。
テストコードを書くには、ユーザー目線に立ってどのような操作があるかを洗い出して、一つ一つテストしていく必要があります。
この操作を洗い出す上で必須なのが、describeというメソッドです。
describeの役割は、「どの機能に対してテストを行うのかのグループ分け」です。
例えば、「ユーザーの新規登録」の機能をテストしたい時は、このdescribeの後ろに’ユーザーの新規登録’と記述します。
次に登場するのはitというメソッドです。
itはdescribeで決めたグループを、さらに分けるために使用します。
例えば、describeで「ユーザーの新規登録」の機能をテストすると決めたなら、ユーザーの新規登録に必要な条件である「名前」が登録できるかなど、より細かくグループ分けをするのがitの役割です。
ちなみに、itで分けたグループのことをexampleと呼びます。
今紹介したdescribeとitで、どの機能のどのような動作をテストするのかが決まったら、いよいよテストコードを書いていきます。
テストコードの記述法はたくさんあるので、今回は数ある記述法の中で「valid?(バリッド)」というメソッドについて解説します。
valid?とは、バリデーションを実行させて、エラーが出るかどうかをテストするメソッドです。
バリデーションとは、データを登録する際の制限のことを指します。
例えば、「アカウント名が空の状態で、アカウントを作成することはできない」などがバリデーションです。
簡単に言えば、「データ登録時に設定されたルールが正しく機能しますか?」というのを確認するのがvalid?メソッドです。
正しく機能していればtrue。機能していなければfalseを返します。
テストする方法は、まずランダムの値が入ったインスタンスを作成します。
インスタンスは、「インスタンス名=モデル名.new()」で作成でき、引数として()の中に値を入れることができます。
例えば、ユーザーのインスタンスを作成したければ、
user = User.new()と記述し、()の中に任意のユーザー情報を記述します。
そして、バリデーションがちゃんと実行するかを確認するために、
user.valid?
という記述をします。
これで、期待した回答が返ってきたら、テストは問題なしといった結果になります。
テストコードでは今回のvalid?のようなコードがたくさん出てくるので、都度調べながら覚えてていきましょう。