Как заглушить метод возникновения ошибки с помощью Ruby MiniTest?

Я пытаюсь протестировать ветвь контроллера Rails, которая срабатывает, когда метод модели вызывает ошибку.

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, чтобы вызвать эту ошибку?

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
20
задан s01ipsist 12 June 2012 в 04:38
поделиться