期望ActiveRecord::RecordNotFound,但没有引发任何异常



如何获得此错误的测试通过?

Rspec结果

**2) Api::V1::UsersController GET #show - a user it fails showing a user
Failure/Error:
expect do
get 'show', params: { id: 2 }
end.to raise_error(ActiveRecord::RecordNotFound)

expected ActiveRecord::RecordNotFound but nothing was raised
# ./spec/controllers/users_controller_spec.rb:100:in `block (3 levels) in <main>'

* *控制器方法

def show
begin
user = User.find(params[:id])
render json: UserSerializer.new(user).serialized_json
rescue ActiveRecord::RecordNotFound => e
render json: { error: e.to_s }, status: :not_found      
end         
end

* *

Rspec控制器

it 'it fails showing a user' do
expect do
get 'show', params: { id: 2 }
end.to raise_error(ActiveRecord::RecordNotFound)
end

我可以这样求解,

def show
user = User.find(params[:id])
begin
render json: UserSerializer.new(user).serialized_json            
rescue ActiveRecord::RecordNotFound => e
render json: { error: e.to_s }, status: :not_found      
end               
end

最新更新