2011-05-09 28 views
13

Estoy tratando de probar las rutas con rspec. A continuación, se muestra un error de "Bloque esperado para devolver el valor verdadero".probando rutas anidadas con rspec

No estoy seguro de lo que me estoy perdiendo. A través de un navegador puedo publicar en esta url y es exitoso.

¿Alguna idea? ¡Gracias!

Rutas

resources :forum_topics do 
    resources :forum_sub_topics 
end 

prueba:

it "recognizes and generates nested #create" do 
    { :post => "/forum_topics/1/forum_sub_topics" }.should route_to(:controller => "forum_sub_topics", :action => "create", :forum_topic_id => 1) 
end 
+0

Intenta ejecutar 'rspec' con la opción' -b' para obtener una traza inversa del error. –

+3

No creo que ': forum_topic_id' realmente sea un número entero. Pruebe ': forum_topic_id => '1'' –

+0

Rob S tiene la respuesta exacta, intentaré -b también solo por diversión. –

Respuesta

10

Bueno nadie respondió oficialmente mi pregunta, por lo que se :)

{ :post => "/forum_topics/1/forum_sub_topics" }.should route_to(:controller => "forum_sub_topics", :action => "create", :forum_topic_id => 1) 

Todo se reduce a: forum_topic_id => No 1 siendo igual a: forum_topic_id => "1" Quizás mis días de PHP se han deslizado para morderme. Palabras y enteros :)

+1

lo mismo que php para mí. Gracias. –

+0

Cuando hice esto, la identificación (1) tenía que ser una cadena "1" –

+0

Debe aceptar su respuesta si es correcta :) – Rimian

8

sé que todo se reduce a lo mismo, pero si se desea acortar su código que también podría hacer:

{ :post => "/forum_topics/1/forum_sub_topics" }.should route_to("forum_sub_topics#create", :forum_topic_id => 1) 

Me resulta más fácil de leer.

+0

Esto realmente funcionó para mí en lugar de la respuesta de @recursive_acronym. La respuesta de recursivo parece mirar al controlador principal. ¡De todos modos, gracias por la información! –

Cuestiones relacionadas