Sử dụng khi cần function nào đó quăng lỗi. Trường hợp này mình test tính stable của code. Chính là động chịu đựng:
  • Có hoạt động bình thường khi một lỗi xãy ra hay không? 
  • Sau khi lỗi xãy ra có được xử lý như mong muốn hay không?
  • Không ảnh hưởng đến trãi nghiệm người dùng? (UX).

RSpec.describe "Making it raise an error" do
  it "raises the provided exception" do
    dbl = double
    allow(dbl).to receive(:foo).and_raise("boom")
    dbl.foo
  end
end​

Kết quả mong đợi:

1) Making it raise an error raises the provided exception
     Failure/Error: dbl.foo

     RuntimeError:
       boom