Ожидаемый #count изменился на 1, но не получил блок
Я тестирую свой метод model
, который возвращает мне Account object
. Я проверяю, вставила ли моя таблица новый 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
Ответы
Ответ 1
Матчи #change
ожидает блок, в котором выполняется какое-либо действие, которое влияет на ожидаемое изменение. Попробуйте следующее:
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