Hay muchas funciones de afirmación si está escribiendo pruebas. Pero para assertiona en el código principal, no hay ninguno y usted puede enrollar el suyo fácilmente.
Añadir algo como esto para environment.rb
:
class AssertFailure < Exception
end
def assert(message = 'assertion failed')
unless block_given? and yield
raise message
end
end
y convertirlo en un no-op en su environments/production.rb
por lo que hay una mínima sobrecarga
def assert(message = 'assertion failed')
end
Luego, en el código, se puede afirmar que el contenido de su corazón:
assert { value == expected_value }
assert('value was not what was expected') { value == expected_value }
Si value
no es igual a expected_value
y no se está ejecutando en producción, se generará una excepción.
No estoy seguro de si el método assert pretende ser un método de la clase AssertFailure anterior o no. No parece que debería, pero si uso ese código, aparece el error "inesperado $ end, expecting keyword_end". ¿Puede explicar e indicar si es necesario/incluir para el uso, por favor? (también parece una parte de la implementación de la aplicación, ¿el directorio config es un lugar apropiado para dicho código?) – DavidJ
Creo que debe haber una línea 'final' inmediatamente después de la línea' class'. – dubek
¿Puedes explicarnos qué hace allí la declaración de la clase? ¿cómo entra en juego? –