テストコード続き

describeや、itを用いてテストコードをグループ分けしたが、contextも同じようにグループ分に使える。正常系と異常系を区別する時に用いる。

 

正常系のテストコードでは、

expect(@インスタンス).to be_valid

のように記述することで、@インスタンスがデータベースに保存されることを確認している。

ここではbe_valid matcherが用いられている。

 

be_valid matcher は、valid?に対してtrueが返されることを期待する。

 

登録されるメールの一意性をテストするコードは、

新たにユーザーのインスタンスを生成し、それにあらかじめ生成してあるインスタンスを代入して、それがvalidかどうかをテストする。

 

アソシエーションのテストコードは、

インスタンス変数から結びついている先の情報を nil (空)にしてその上でvalidかどうかを確かめる。