2011-05-06 12 views
10

Así que QUnit proporciona la aserción "subir" 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, decir que tengo esta función:qunit - mensaje de excepción de prueba?

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

me gustaría ser capaz de escribir algo en este sentido:

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

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

+0

No es QUnit de [tiros] (http://api.qunitjs.com/throws/) haciendo eso? –

+0

_throws_ funciona, pero, por alguna razón, no valida el mensaje de excepción. –

Respuesta

18

Descubrí la respuesta, publicando aquí en caso de que a otros les resulte útil. Teniendo en cuenta 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' 
); 
+0

sí, funciona como un encanto! – ducin

+0

Sí, de forma independiente encontré este - es una característica indocumentada por lo que puedo decir –

Cuestiones relacionadas