test javascript unit-testing exception-handling tdd qunit

qunit test javascript



qunit-mensaje de excepción de prueba? (1)

Entonces QUnit proporciona la aserción de "aumento" para probar si se lanza una excepción. Sin embargo, ¿hay alguna manera de probar el mensaje real arrojado por la excepción? Por ejemplo, di que tengo esta función:

throwError = function(arg) { var err = new Error(); if (typeof arg === ''undefined'') { err.message = ''missing parameter''; throw err; } }

Me gustaría poder escribir algo en esta línea:

raises( function(){throwError();}, Error.message, ''missing arg'' );

Idealmente, esta prueba fallaría porque el mensaje de excepción es "parámetro faltante" y espero que sea "arg perdido", pero se transfiere porque qunit solo verifica que se haya producido un error. ¿Alguna forma de verificar el contenido real de la excepción lanzada?


Descubrí la respuesta, publicando aquí en caso de que otros lo encuentren útil. Dada esta función:

throwError = function(arg) { var err = new Error(); if (typeof arg === ''undefined'') { err.message = ''missing parameter''; throw err; } }

La prueba se vería así:

raises( function(){ throwError(); }, function(err) { return err.message === ''missing arg''; }, ''optional - label for output here'' );