Chciałbym przetestować User
modele stowarzyszenie has_many :projects, dependent: :destroy
i poszły tak daleko teraz:Jak testować zależnie:: niszczyć przy pomocy RSpec?
it "destroys dependent projects" do
user = FactoryGirl.build(:user)
project = FactoryGirl.build(:project)
user.projects << project
user.destroy
expect(Project.count).to change(-1)
end
ale to daje się błąd:
Failure/Error: expect(Project.count).to change(-1)
ArgumentError:
`change` requires either an object and message (`change(obj, :msg)`) or a block (`change { }`). You passed an object but no message.
więc przypuszczać, że nie jest change
właściwy matcher, prawda? Czy możesz mi powiedzieć, jak mógłbym napisać ten test bez otrzymania tego błędu?
to pokazuje błąd jako metody niezdefiniowanej zależnej .. – indb
powinien zawierać dopasowujących shoulda w spec_helper: 'require„powinieneś/dopasowujących '', więcej informacji na temat zależności: https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/active_record/association_matcher.rb#L147-L182 – santuxus
Czy istnieje jakieś inne rozwiązanie zamiast używania shoulda -mątrzy gem? – indb