Tôi có một phương pháp mà thực hiện một số hành động trên mô hình Cát và trong trường hợp nhập sai đặt ra một ngoại lệ:Làm cách nào để tôi mong đợi điều gì đó làm tăng ngoại lệ trong RSpec?
context "hungry cat" do
it { expect { eat(what: nil) }.to raise_error }
end
Những gì tôi muốn làm là để kiểm tra xem tình trạng mèo thay đổi phương pháp này, như thế:
context "hungry cat" do
it { expect { eat(what: nil) }.to raise_error }
it { expect { eat(what: nil) }.not_to change(cat, :status) }
end
Vấn đề là vì eat(what: nil)
sẽ tăng ngoại lệ thứ hai it
sẽ không thành công bất kể điều gì. Vì vậy, nó có thể bỏ qua ngoại lệ và kiểm tra một số điều kiện?
Tôi biết rằng nó có thể làm điều gì đó như:
it do
expect do
begin
eat(what: nil)
rescue
end
end.not_to change(cat, :status)
end
Nhưng đó là cách quá xấu xí.
Làm thế nào về 'nó {mong đợi {ăn (what: nil) rescue nil} .not_to change (cat,: status)}'? – awendt
@awendt tốt nhất, bạn có thể đăng nó làm câu trả lời không? – Andrew
Trong 'Test/Unit', có một khẳng định tốt đẹp,' assert_raise', tôi nghĩ vậy. –