Tengo varios controladores ya configurados. Ahora quiero comenzar a escribir pruebas de especificación para ellos. ¿Hay algún comando que genere los archivos de especificaciones automáticamente? Sé que los rieles hacen esto para obtener nuevos recursos, pero no sé si también lo hace para los controladores/modelos existentes.¿Cómo puedo generar especificaciones para los controladores existentes?
Respuesta
rails g rspec:controller ControllerName
Cuando se le pide que anular el controlador existente, tipo n
.
Si ha configurado rspec en application.rb:
config.generators do |g|
g.test_framework :rspec
end
continuación rails g controller things
va a funcionar. No opte por sobrescribir los archivos a medida que se generan.
Toda una especificación parece que cuando se genera es la siguiente:
require 'spec_helper'
describe ThingsController do
it "should be successful" do
get :index
response.should be_successful
end
end
que a menudo crean las especificaciones de forma manual, ya que es bastante trivial.
Noté que a veces las pruebas generadas pueden ser más detalladas que eso. Especialmente cuando está generando recursos, la prueba contendrá el código para todos los métodos REST. – picardo
Dijo específicamente "controladores existentes" en el título de su pregunta, por lo que no noté que había incluido modelos en el texto. De cualquier manera, volver a ejecutar el generador y decir 'n' cuando soliciten sobrescribir el modelo o el archivo controlador se adecuará a sus propósitos. :) –
Hay dos opciones. Si desea un archivo de especificaciones vacío, puede probar con:
rails g rspec:controller ControllerName
Ahora, si quieres un archivo de especificaciones con las especificaciones iniciales para un controlador básico parado, con:
rails g rspec:scaffold ControllerName
- 1. Generar solo pruebas del modelo/controladores existentes
- 2. postgresql nextval generar valores existentes
- 3. cómo codificar los controladores?
- 4. generar modelos de tablas existentes utilizando los carriles 3
- 5. Cómo entender los proyectos existentes
- 6. ¿Los controladores de eventos en C# deberían generar alguna excepción?
- 7. ¿Cómo puedo generar automáticamente nombres falsos únicos para los usuarios?
- 8. Usando Zend_Auth para asegurar todos los controladores
- 9. ¿Cómo puedo generar RDOC para (todos) Rails?
- 10. Cómo puedo generar WADL para servicios REST
- 11. ¿Cómo generar controladores de eventos con bucle en Javascript?
- 12. Symfony2: ¿Cómo pasar los parámetros url querystring a los controladores?
- 13. Escribiendo especificaciones funcionales para juegos
- 14. Al escribir pruebas de RSpec con rieles, ¿qué debe ir en la carpeta especificaciones/solicitudes frente a especificaciones/controladores?
- 15. ¿Los controladores de rieles son multiproceso? Thread.exclusive en los controladores
- 16. ¿Cómo puedo generar ctags para CoffeeScript?
- 17. ¿Cómo sobrescribir los archivos existentes en lote?
- 18. ¿Puedo evitar que Firebase set() sobrescriba los datos existentes?
- 19. Software/plataforma para compartir especificaciones
- 20. Cómo implementar una clase base para los controladores Symfony2
- 21. ¿Cómo probar los controladores con CodeIgniter?
- 22. Cómo escribir controladores para Android?
- 23. ¿Cómo puedo generar colores contrastantes?
- 24. ¿Cómo cambio entre los controladores de navegación?
- 25. asp.net mvc Cómo probar los controladores correctamente
- 26. ¿Cómo ignorar los archivos existentes y comprometidos en git?
- 27. ¿Cómo puedo generar Javascript dinámico?
- 28. ¿Cómo uso rpm para actualizar/reemplazar archivos existentes?
- 29. ¿Cómo puedo generar los HBM que crea NHibernate Fluido?
- 30. Comprender los controladores en MVC
Esto sólo genera los archivo de especificaciones para el controlador. Si quiere los archivos asociados, como ayudantes o fábricas, entonces quiere: 'rails g controller ControllerName -s' El -s al final hará que omita los archivos existentes para que no tenga que preocuparse por la pregunta con respecto a anular cualquier cosa. – Blimey85
esto funciona para el modelo también? 'rspec: model'? esto existe en rspec 1? –
¿Algo en el espacio de nombre de 'rspec' normalmente intenta crear un controlador? ¿O estás pensando en lo que 'rails g controller ControllerName' hace? –