LoginSignup
33
12

More than 5 years have passed since last update.

【RSpec 3.1+】ひとつの expect で複数リソースの change を検証する

Last updated at Posted at 2018-05-21

ひとつのアクションで、複数のリソースが作成されるときの検証方法の例。

例えば 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したいときに

33
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
12