Я пытаюсь проверить ветвь контроллера Rails, которая срабатывает, когда метод модели вызывает ошибку.Как отключить метод для повышения ошибки с помощью 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
Как я могу получить Minitest stub для поднятия этой ошибки?
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
Если исключение имеет аргументы, вы должны предоставить экземпляр: '' 'MyObject.any_instance.expects (: my_model_method) .raises (Исключения :: CustomError.new (some_arg))' '' – Tony