bootstrap javascript unit-testing testing qunit

javascript - bootstrap - html tags



Cómo afirmar que una función no genera una excepción (2)

No hay tal método en qunit

Sin embargo, si solo escribe el siguiente código que es mucho más corto, obtendrá el mismo resultado con beneficios adicionales

theTest(); ok(true, "My function does not crash");

1 / Si el código de una prueba genera una excepción, qunit marcará la prueba como fallida.

2 / Si marca la casilla de verificación "no intentar / capturar", podrá depurar dónde se lanzó la excepción, lo cual no es el caso de su intento / captura

QUnit tiene una aserción para probar que una función genera una excepción ( QUnit/raises ). ¿Es posible, usando QUnit, afirmar que una función no genera una excepción?

Me doy cuenta de que es posible probarlo como en el siguiente código:

try { theTest(); ok(true); } catch (e) { ok(false, "Expected to succeed"); }

Pero creo que debería ser posible usar QUnit. ¿Alguna pista?


Tuve el mismo problema que usted mencionó en el comentario, por el cual mi prueba que no arroja un Error se detendría "gravemente" y muestra un mensaje de Died on test #1 mal formateado sin ninguna información útil.

Terminé usando una mezcla de ambos; raises() para una prueba y try/catch para la otra.

Usé raises () para la prueba que prueba que se produce un Error , similar a esto:

test("When myFunction() is called with a invalid instance Then Error is thrown", function () { // Arrange var testInstance = {}; // Act raises(function() { myFunction(testInstance); }, Error, "myFunction() should throw an Error"); // Assert // raises() does assertion });

Si lo anterior arroja un Error todo está bien y, si no se muestra un mensaje con un buen formato, es similar a esto:

myFunction() should throw Error Result: No exception was thrown.

Luego utilicé try/catch para las pruebas que tienen que asegurar que no se Error ningún Error , similar a esto:

test("When myFunction() is called with a valid instance Then no Error is thrown", function () { // Arrange var testInstance = new myObject(); var result; // Act try { myFunction(testInstance); result = true; } catch(error) { result = false; } // Assert ok(result, "myFunction() should not throw an Error"); });

Si lo anterior no muestra ningún Error todo está bien y si se produce un Error muestra un mensaje con un buen formato, similar a esto:

myFunction() should not throw an Error Source: ...