No encuentro nada que explique cómo probar rutas en Rails 3. Incluso en el libro de Rspec, no explica bien.¿Cómo probar rutas con Rspec 2 en Rails 3?
Gracias
No encuentro nada que explique cómo probar rutas en Rails 3. Incluso en el libro de Rspec, no explica bien.¿Cómo probar rutas con Rspec 2 en Rails 3?
Gracias
hay un breve ejemplo de la rspec-rails Github site. También puede usar el generador de andamios para producir algunos ejemplos enlatados. Por ejemplo,
rails g scaffold Article
debe producir algo como esto:
require "spec_helper"
describe ArticlesController do
describe "routing" do
it "routes to #index" do
get("/articles").should route_to("articles#index")
end
it "routes to #new" do
get("/articles/new").should route_to("articles#new")
end
it "routes to #show" do
get("/articles/1").should route_to("articles#show", :id => "1")
end
it "routes to #edit" do
get("/articles/1/edit").should route_to("articles#edit", :id => "1")
end
it "routes to #create" do
post("/articles").should route_to("articles#create")
end
it "routes to #update" do
put("/articles/1").should route_to("articles#update", :id => "1")
end
it "routes to #destroy" do
delete("/articles/1").should route_to("articles#destroy", :id => "1")
end
end
end
https://github.com/rspec/rspec-rails # routing-specs pueden ser útiles –
Tengo un problema con este tipo de pruebas, esta es mi pregunta http://stackoverflow.com/questions/14330293/rspec-for-routes-and-testing- routes-rb-specifiC# comment19916220_14330293, más o menos no verifica si la ruta existe en routes.rb, simplemente va con la verificación syntanx. ¿Algunas ideas? – Matilda
respuesta de Zetetic explica cómo probar rutas. Esta respuesta explica por qué no debes hacer eso.
En general, las pruebas deben probar el comportamiento expuesta al usuario (o de objetos de cliente), no la aplicación por el cual se establece que el comportamiento. Las rutas están orientadas al usuario: cuando el usuario escribe en http://www.mysite.com/profile
, no le importa que vaya a ProfilesController; más bien, le importa que él vea su perfil.
Así que no pruebes que vas a utilizar ProfilesController. Más bien, configure un escenario de Pepino para probar que cuando el usuario vaya al /profile
, vea su nombre e información de perfil. Eso es todo lo que necesitas.
De nuevo: no pruebes tus rutas. Pon a prueba tu comportamiento.
Sería bueno si quien está bajando la votación dejaría un comentario explicando por qué lo están haciendo ... –
¿Por su definición, todas las pruebas unitarias son inútiles? – sevenseacat
Generalmente no. Las pruebas unitarias son útiles a nivel de modelo, en el que interviene la lógica empresarial interna (independiente de la IU). En el nivel del controlador, sin embargo, solo la interfaz de usuario es relevante, por lo que probar la implementación del controlador realmente no le dice nada útil. Si alguien me dijera que tengo que elegir entre tener historias de Pepino y tener especificaciones del modelo de RSpec, tomaría las historias de Pepino cada vez. (Afortunadamente, no tengo que elegir. :)) –
[Rutas Ejemplo RSpec] (https://cbabhusal.wordpress.com/2015/12/15/rails-rspec-examples-of-routing-specs/#more-1623) – illusionist