javascript - tutorial - pruebas unitarias node js
Probando excepciones JS con Mocha/Chai (2)
O bien pasar la función :
chai.expect(manager.test).to.throw(''Oh no'');
O use una función anónima :
chai.expect(() => manager.test()).to.throw(''Oh no'');
Consulte la documentación sobre el método de throw
para obtener más información.
Esta pregunta ya tiene una respuesta aquí:
Intento probar un código que arroja una excepción con Mocha / Chai, pero no teniendo suerte, aquí está el código simple que trato de probar:
class window.VisualizationsManager
test: ->
throw(new Error ''Oh no'')
Aquí está mi prueba:
describe ''VisualizationsManager'', ->
it ''does not permit the construction of new instances'', ->
manager = new window.VisualizationsManager
chai.expect(manager.test()).to.throw(''Oh no'')
Sin embargo, cuando ejecuto la especificación, la prueba falla y lanza la excepción.
Failure/Error: Oh no
¿Qué estoy haciendo mal aquí?
Probablemente se deba a que está ejecutando la función de inmediato, por lo que el marco de prueba no puede manejar el error.
Intenta algo como:
chai.expect(manager.test.bind(manager)).to.throw(''Oh no'')
Si sabe que no está utilizando this
palabra clave dentro de la función, supongo que también podría aprobar manager.test
sin vincularla.
Además, el nombre de la prueba no refleja lo que hace el código. Si no permite la construcción de nuevas instancias, manager = new window.VisualizationsManager
debería fallar.