Estoy tratando de usar rspec para probar un filtro que tengo en mi ApplicationController.Prueba ApplicationController Filters, Rails
En spec/controllers/application_controller_spec.rb
que tengo:
require 'spec_helper'
describe ApplicationController do
it 'removes the flash after xhr requests' do
controller.stub!(:ajaxaction).and_return(flash[:notice]='FLASHNOTICE')
controller.stub!(:regularaction).and_return()
xhr :get, :ajaxaction
flash[:notice].should == 'FLASHNOTICE'
get :regularaction
flash[:notice].should be_nil
end
end
Mi intención era para la prueba de burlarse de una acción ajax que establece el flash, y luego verificar en la siguiente petición de que el flash se borra.
estoy recibiendo un error de enrutamiento:
Failure/Error: xhr :get, :ajaxaction
ActionController::RoutingError:
No route matches {:controller=>"application", :action=>"ajaxaction"}
Sin embargo, esperamos que haya un múltiplo cosas mal con la forma en que estoy tratando de probar esto.
de remisión, el filtro se denomina en ApplicationController
como:
after_filter :no_xhr_flashes
def no_xhr_flashes
flash.discard if request.xhr?
end
¿Cómo puedo crear métodos simulacros en ApplicationController
para poner a prueba una amplia filtro de aplicación?