2012-03-28 19 views
8

La prueba rspec falla al intentar hacer clic en el botón "Crear mi cuenta" diciendo "La acción 'crear' no se pudo encontrar para UsersControllerRuby on Rails Tutorial 7.2.2: error rspec: no se pudo encontrar la acción 'crear' para UsersController

Supongo que este es un problema RESTful donde está predeterminado el POST en lugar de GET (o algo por el estilo). ¿Por qué, por qué más, intenta llamar 'crear' en lugar de 'nuevo'? la siguiente sección - 7.3 - se define una acción de 'crear', pero el tutorial dice que las pruebas deben pasar al final de 7.2.2.

Por otro lado, podría estar perdiendo algo. Por eso ' m no escribiendo a admin en el sitio tutorial.

que había puesto mi código, pero yo he comprobado que es lo mismo que los ejemplos del tutorial: http://ruby.railstutorial.org/chapters/sign-up?version=3.2#sec:signup_form

+0

Acabo de ver el resultado HTML del formulario y definitivamente está PUBLICANDO. Lo que significa, RESTfully, que la acción es 'crear'. Entonces tal vez es solo un error en el tutorial. Voy a morder la bala y enviar un correo electrónico a Michael (administrador). –

+0

Desde el listado 7.20, puede encontrar que el HTML generado en realidad muestra que se trata de una acción POST.

Alex

Respuesta

5

No, no le falta nada. Parece que estás atrapando un ligero error doco.

De hecho, Hartl lo dice justo al comienzo de 7.3.1 "Nuestro primer paso es eliminar el error que resulta actualmente al enviar el formulario de registro, como puede verificar en su navegador o * al ejecutar la prueba registro con información inválida * "(mi énfasis).

Aún así, me gustaría que aclare esto, parece que hay un poco más de esto. También sucede que no estoy detectando errores de expresiones regulares para direcciones de correo electrónico mal formadas.

+0

Ha sido corregido.:-) – mhartl

10

Sé que esto es viejo, pero acabo de tener el mismo problema y lo publicaré en caso de que alguien nuevo necesite ayuda.

Lo que me confundió fue la oración en 7.2.2: "Con la variable @user así definida, la prueba para la página de registro debería estar pasando nuevamente". Pero mis pruebas fallaban aunque mi código era exactamente el mismo que en el ejemplo.

El problema era que no todas las pruebas deberían pasar - Hartl solo está hablando de las pruebas de "página de registro". En este punto, algunas pruebas en "registro" deberían estar fallando.

Si ejecuta el comando Hartl da usted debe ver que las pruebas correctas no pasan:

bundle exec rspec spec/requests/user_pages_spec.rb -e "signup page" 

yo sólo había estado haciendo el vago y sólo escribir bundle exec rspec spec/, que corrió las pruebas fallan también.

+0

Además, hay un error en la lista 7.16: la prueba de "registro" se llama "página de registro", lo que me llevó a agregar las pruebas a la prueba de página de registro existente en lugar de crear una nueva prueba de suscripción. Puede ver que está corregido aquí: https://github.com/mhartl/sample_app/blob/master/spec/requests/user_pages_spec.rb – alexbhandari

3

Parte de la confusión para mí fue que cuando Michael describió las nuevas pruebas de "registro", pensé que había renombrado/generalizado las pruebas de "página de registro" previamente creadas. En retrospectiva, no debería haber hecho esa suposición y me di cuenta de que conservaba las pruebas de "página de registro" como algo separado de las pruebas de "registro". Mi error se agravó por el hecho de que había tomado su sugerencia anterior y había estado ejecutando guard/spork, por lo que en general no estaba ejecutando las pruebas desde la línea de comandos, por lo que faltaba la referencia de prueba específica que había incluido.

Cuestiones relacionadas