Esto me tomó por sorpresa ...RSpec compartió ejemplos no deben ser compartidos
Parece que no se puede utilizar el mismo nombre para 2 rspec compartida ejemplo, los grupos en cualquier lugar dentro de su proyecto. Si lo hace, cuando ejecuta rake spec
(para ejecutar todas las especificaciones), rspec se queja de que un grupo de ejemplo compartido fue declarado con un nombre no único.
Esto ocurre incluso cuando las llamadas a shared_examples_for
están contenidas dentro de un bloque de descripción (se presumiría que debería abarcar los ejemplos).
Al principio traté de evitar esto cambiando los nombres de los grupos de ejemplo (no es ideal, pero puedo vivir con él).
Pero esto se convirtió en un problema mayor cuando quería factorizar el grupo de ejemplo en un archivo separado para poder compartirlo entre múltiples archivos de especificaciones.
Las especificaciones funcionan bien cuando se ejecutan de forma aislada, pero cuando ejecuto el paquete, rspec se queja.
`ensure_shared_example_group_name_not_taken': \
Shared example group 'a person' already exists (ArgumentError)
Sin duda, este es un problema común.
¿Hay algo que me falta aquí?
Gracias David. ¿Alguna recomendación sobre cómo usar ejemplos compartidos en más de un archivo de especificación? Parece que llamar 'shared_examples_for' fuera de un bloque' describe' hace que 'rake' falle. –
Lo siento. Eso no es cierto. Falla incluso cuando lo envuelvo en 'describe'. Aparentemente tiene que ver con requerir otro archivo. –
La intención es definirlos en un archivo y usarlos en otros archivos, por lo que definitivamente debería funcionar si los tiene en un archivo diferente. La convención es mantenerlos en un archivo bajo especificaciones/soporte (por ejemplo, spec/support/shared_examples_for_xyz.rb) y requerir esos archivos desde spec/spec_helper.rb. –