ひとつのアクションで、複数のリソースが作成されるときの検証方法の例。
例えば POST するエンドポイントを叩いたあとにリソースがひとつ増えることを検証するときは次のように書く。
it do
expect {
post "/api/v1/schedules/create", params: params
}.to change { Schedule.count }.by(1)
end
このとき、Schedule
というリソースだけでなく Project
といったリソースも一緒に登録されることを検証したい場合は次のように書ける。
it do
expect {
post "/api/v1/schedules/create", params: params
}.to change { Schedule.count }.by(1).and change { Project.count }.by(1)
end
RSpec 3.1 のリリースで、change
メソッドをチェーンできるようになっている!
参考
RSpec 3.1 has been released!
expect change を複数データ同時にTESTしたいときに