Después de un tiempo de hacer Cucumber & RSpec BDD, me di cuenta de que muchas de mis funciones de Cucumber son solo pruebas de nivel superior.¿Cuándo debo probar las vistas por separado en el flujo de trabajo de Cucumber & RSpec?
Cuando empiezo a escribir mi escenario y luego voy a RSpec, nunca escribo las especificaciones de vista, ya que podía simplemente copiar y pegar parte del escenario, lo que sería una duplicidad fea.
Tome este escenario, por ejemplo
Scenario: New user comes to the site
Given I am not signed in
When I go to the home page
Then I should see "Sign up free"
Sé que esto no es la prueba directa de la vista, pero escribir especificaciones vista separada para comprobar si la misma cosa parece redundante para mí.
¿Me estoy acercando a Cucumber wrong? ¿Qué debo probar exactamente en las especificaciones de vista?
¿Debo escribir para cada vista única, por ejemplo, ensayos vistas para acciones tales como
def show
@project = current_user.projects.first
end
o debo probar vistas más complejas?
¿El consenso general es tener tres tipos de pruebas en una aplicación de Rails: pruebas funcionales/de aceptación en Cucumber y pruebas de modelo y controlador en RSpec (junto con su sugerencia de que las pruebas de vista RSpec a veces pueden ser útiles)? –
Estoy de acuerdo con esa afirmación, sí. Pepino maneja lo que son clásicamente pruebas de aceptación. RSpec maneja lo que son pruebas de integración clásicamente (controlador-ish) y unidades (modelo-ish). – bobocopy
No. Estos deberían ser en las historias de Pepino. Las especificaciones de vista son 100% inútiles debido a un alcance inadecuado. –