RSpecカスタムマッチャでデータベースのUNIQUE制約をテストする
Railsでモデルを作る時にUNIQUE制約テストも簡単に書きたかったのでカスタムマッチャを作りました
連載: Rails4のActiveRecord向けRSpecカスタムマッチャ5選
前回、NOT NULL制約カスタムマッチャの記事を書きましたが、UNIQUE制約のテストもやっぱり面倒なのでUNIQUE制約のRSpecカスタムマッチャも作りました。
たとえばPersonモデルのnameフィールドのUNIQUE制約をテストする場合は
と書いてあげれば
$ bundle exec rspec spec/models/person_spec.rb
Person
should have UNIQUE constraint on name
とテスト実行できます。
以下がUNIQUE制約のカスタムマッチャで、FactoryGirlの利用を前提としています。
ということで、NOT NULL制約カスタムマッチャと一緒に活躍してくれるであろうUNIQUE制約カスタムマッチャでした。