En ruby, ¿hay alguna manera de "indefinir" una variable o constante una vez que se ha definido?¿Es posible definir una variable en rubí?
En nuestros environemnts carriles, definimos una de las tres contants para ser true
, dependiendo del entorno: TESTING
, DEVELOPMENT
o PRODUCTION
. Luego, en el código del controlador, usamos defined?
para ver si en qué entorno estamos, es decir: defined? PRODUCTION
.
Ahora, quiero probar unitario parte de ese comportamiento específico del entorno. Mi primer intento fue simplemente establecer la constante adecuada en mi prueba, y luego reiniciarlos en el desmontaje. Sin embargo, no puedo encontrar la forma de restablecer DEVELOPMENT
y PRODUCTION
de modo que defined?
devuelva falso.
Obviamente, una solución sería simplemente comprobar si la constante adecuada también es cierta además de verificar si está definida, pero esto tendrá que tocar una cantidad considerable de código existente.
EDIT: me doy cuenta de que definitivamente esta NO es la manera correcta de hacer las cosas. Por desgracia, cambiarlo no es una tarea trivial, así que estoy buscando una forma sencilla de probar lo que hay ahora. Además, también me interesa la cuestión del lenguaje de nivel inferior sobre si es posible definir una variable/constante.
Esto es exactamente lo que estaba buscando, hacky o no (es el código de prueba de unidad, por lo que no estoy terriblemente preocupado de que sea privado). ¡Gracias! –