RSpecカスタムマッチャでデータベースのNOT NULL制約をテストする
Railsでモデルを作る時にNOT NULL制約テストを簡単に書きたかったのでカスタムマッチャを作りました。
連載: Rails4のActiveRecord向けRSpecカスタムマッチャ5選
Railsを使っているとDBのフィールドにNOT NULL制約をつけることがよくありますが、テストしようとするとデータを保存してエラーが起きることを確認したりして相当面倒です。
なのでRSpecカスタムマッチャを作りました。
たとえばPersonモデルのnameフィールドのNOT NULL制約をテストする場合は
と書いてあげれば
$ bundle exec rspec spec/models/person_spec.rb
Person
should have NOT NULL constraint on name
という実行結果になります。
カスタムマッチャはこんな感じです。
DBのNOT NULL制約はよく使うので重宝しそうです。