How to test exception raising in Rails/RSpec?

前端 未结 3 1755
梦毁少年i
梦毁少年i 2020-12-08 18:10

There is the following code:

def index
    @car_types = car_brand.car_types
end

def car_brand
    CarBrand.find(params[:car_brand_id])
    rescue ActiveReco         


        
3条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-08 18:36

    In order to spec error handling, your expectations need to be set on a block; evaluating an object cannot raise an error.

    So you want to do something like this:

    expect {
      get :index, car_brand_id: 0
    }.to raise_error(Errors::CarBrandNotFound)
    

    See Expect error for details.

    I am a bit surprised that you don't get any exception bubbling up to your spec results, though.

提交回复
热议问题