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: ...