Account object
を返すmodel
メソッドをテストしています。テーブルに新しいrow
が挿入され、モデルにその数が反映されているかどうかを確認しています。
以下は私の仕様です。
it "can create an account" do
create_account = Account.create(account: acc)
create_account.should change(Account, :count).by(1);
end
エラーが発生しています
8) Account can create an account
Failure/Error: create_account.should change(Account, :count).by(1);
expected #count to have changed by 1, but was not given a block
#change
matcherは、予想される変更に影響を与える何らかのアクションが実行されるブロックを想定しています。これを試して:
expect { Account.create(account: acc) }.to change{ Account.count }.by(1)
https://www.relishapp.com/rspec/rspec-expectations/v/2-0/docs/matchers/expect-change を参照してください