Advertencia para cualquiera que intente probar que las constantes están definidas: Si su código hace referencia a una constante indefinida mientras define una clase, sus especificaciones se bloquearán antes de que lleguen a su prueba.
Esto puede llevar a creer que
expect { FOO }.to_not raise_error
está fallando para coger el NameError, porque obtendrá un gran seguimiento de la pila, en lugar de un buen "espera no aumentar de error, pero se crió NameError. "
En medio del enorme rastro de la pila, puede ser difícil notar que su prueba se está rompiendo en la línea 1: requre "spec/spec_helper" porque su aplicación completa no carga antes de llegar a su prueba real.
Esto puede suceder si tiene constantes definidas dinámicamente, como lo hace ActiveHash :: Enum, y luego las usa en la definición de otra constante. No se moleste en probar que existen, cada especificación de su aplicación fallará si una de ellas no se define.
He intentado que '{debería definidos? (: EMPTY_TABLE)} El método' 'partidos no definidas, pero se habían '' para "expresión": String' –
¿Qué pasa con 'should defined? (MODEL_NAME :: EMPTY_TABLE)'? – xdazz
it {should defined? (ActivityDetail :: EMPTY_TABLE)} dio el método indefinido 'matches? ' para "constante": String –