¿Cuál es la diferencia conceptual entre RSpec de especificaciones de características y de solicitud de especificaciones ?
De los documentos de especificaciones de funciones:
Las especificaciones de funciones son pruebas de alto nivel destinadas a ejercitar partes de la funcionalidad a través de una aplicación. Deben manejar la aplicación solo a través de su interfaz externa, generalmente páginas web.
Y para especificaciones de solicitud:
Las especificaciones de solicitud proporcionan un envoltorio delgado alrededor de las pruebas de integración de Rails y están diseñadas para impulsar el comportamiento a través de la pila completa, incluido el enrutamiento (proporcionado por Rails) y sin apéndices (eso depende de usted). Con las especificaciones de solicitud, puede:
- especificar una sola solicitud
- especificar múltiples solicitudes a través de múltiples controladores
- especificar varias solicitudes en varias sesiones
Sé que las especificaciones de funciones usan Capybara y las especificaciones de solicitud no. Pero eso no amerita conceptos diferentes.
"GET /login"
bloque de descripción con expectativas enit
bloques comoexpect(response.status).to eq(200)
yexpect(response).to render_template(:new)
, o endescribe "POST /sessions"
uncontext "with valid credentials"
bloque, conexpect(response).to redirect_to(user)
yfollow_redirect!; expect(response.body).to include("Signed in")
visit users_path
) o cadenas codificadas (visit '/users'
)? Personalmente, prefiero no utilizar ningún componente interno de la aplicación en ese tipo de especificaciones.