test rails matchers ruby-on-rails rspec rack

ruby-on-rails - matchers - ruby on rails test



Prueba de rieles de metal/Rack con RSpec? (3)

Supongamos que tengo una clase de Metal llamada Vista previa. ¿Cómo lo pruebo con RSpec?

Cuando intento:

require ''spec_helper'' describe Preview do it "should return the posted content" do post "/preview", :content => "*title*" response.body.should == "*title*" end end

Yo obtengo:

undefined method `post'' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>

Parece que RSpec no carga el método :post si la prueba no es explícitamente para un Controlador. Intenté especificar :type => :controller inútilmente.


Creo que es mejor probar con rack / test


Hoy en día (rspec-rails 2.2.0 y rails 3) puede lograrlo utilizando Request Specs :

De acuerdo con el archivo Léame :

Solicitar especificaciones en vivo en especificaciones / solicitudes

[...]

Solicitar mezcla de especificaciones en el comportamiento de las pruebas de integración de Rails. Consulte los documentos de ActionDispatch :: Integration :: Runner para obtener más información.


rspec tiene especificaciones de integración que envuelven las pruebas de integración de rieles (que pasan por el rack). Solo ponga esa especificación en ./spec/integration/preview_spec.rb .