Rails + Rspec: How to stub a record so that it's marked as invalid? -
i have purchase model method:
def set_status_to_in_progress! self.update_attributes!(status: in_progress) end and failing rspec test:
context "self invalid" "raises error" purchase = purchase.new purchase.stub(:valid?).and_return(:false) expect { purchase.set_status_to_in_progress! }.to raise_error end end which returns
failures: 1) purchase#set_status_to_in_progress! self invalid raises error failure/error: expect { purchase.set_status_to_in_progress! }.to raise_error expected exception nothing raised # ./spec/models/purchase_spec.rb:149:in `block (4 levels) in <top (required)>' i thought stubbing valid? enough make activerecord update_attributes! method raise error? how make raise?
try changing :false false
purchase.stub(:valid?).and_return(false) or
purchase.should_receive(:valid?).and_return(false) otherwise can stub instance of purchase
purchase.any_instance.should_receive(:valid?).and_return(false)
Comments
Post a Comment