ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

RSpecのmatcherについて軽いメモ

スポンサードリンク

雑メモです。

あるモデルにデータを追加したか確認するテスト

expect { subject }.to change { ModelA.count }

変更しているなら change でおk

もし、変更なしを確認したい場合は、 not_change を用意すると良い

RSpec::Matchers.define_negated_matcher :not_change, :change

zenn.dev

subjectがExceptionを返すので検証できない

実際はExceptionが発生する前にデータを追加しているが、テスト時にはExceptionで落ちるので確認できない

なので、andで繋げてあげる

expect { subject }.to raise_error(HogeHogeException).and change { ModelA.count }

おk

qiita.com