Estoy tratando de probar una rama de controlador de Rails que se activa cuando el método del modelo genera un error.¿Cómo resuelvo un método para generar un error usando Ruby MiniTest?
def my_controller_method
@my_object = MyObject.find(params[:id])
begin
result = @my_object.my_model_method(params)
rescue Exceptions::CustomError => e
flash.now[:error] = e.message
redirect_to my_object_path(@my_object) and return
end
# ... rest irrelevant
end
¿Cómo puedo obtener un trozo Minitest para levantar este error?
it 'should show redirect on custom error' do
my_object = FactoryGirl.create(:my_object)
# stub my_model_method to raise Exceptions::CustomError here
post :my_controller_method, :id => my_object.to_param
assert_response :redirect
assert_redirected_to my_object_path(my_object)
flash[:error].wont_be_nil
end
Si la excepción tiene argumentos, usted tiene que proporcionar la instancia: '' 'MyObject.any_instance.expects (: my_model_method) .raises (Excepciones :: CustomError.new (some_arg))' '' – Tony