erwartet #count geändert durch 1, aber nicht gegeben wurde, ein block
Ich bin, meine Prüfung model
Methode, die gibt mir eine Account object
. Ich checke, ob meine Tabelle eingefügt hat eine neue row
und mein Modell spiegelt die zählen.
Unten ist meine Skillung.
it "can create an account" do
create_account = Account.create(account: acc)
create_account.should change(Account, :count).by(1);
end
Fehler, ich bin immer
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
- BTW, dieser Fehler ist mir passiert, weil ich dabei war
expect(subject).to change ...
stattexpect { subject }.to change ...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
#change
matcher erwartet, dass ein block, in dem eine Aktion durchgeführt wird, die Effekte der erwarteten Veränderungen. Versuchen Sie dies:Sehen https://www.relishapp.com/rspec/rspec-expectations/v/2-0/docs/matchers/expect-change
#change
matcher.Account.all.size
?expect { Account.create(account: acc) }.to change{ Account.all.size }.by(1)
expect { Account.create(account: acc) }.to change(Account, :count).by(1)
- Dies funktioniert auch & vermeiden rubocop, die sich über den coding-Stil.