nodejs library javascript assert

nodejs - javascript assert library



¿Qué es "afirmar" en JavaScript? (12)

Además de otras opciones como console.assert o rodar la suya , puede usar invariant . Tiene un par de características únicas:

  • Admite mensajes de error con formato (utilizando un especificador %s ).
  • En los entornos de producción (según lo determinado por el entorno Node.js o Webpack), el mensaje de error es opcional, lo que permite (. Js) un poco más pequeño.

¿Qué significa assert en JavaScript?

He visto algo como:

assert(function1() && function2() && function3(), "some text");

Y me gustaría saber qué hace el método assert() .


Aquí hay una implementación muy simple de una función de afirmación. Toma un valor y una descripción de lo que estás probando.

function assert(value, description) { var result = value ? "pass" : "fail"; console.log(result + '' - '' + description); };

Si el valor se evalúa como verdadero pasa.

assert (1===1, ''testing if 1=1'');

Si devuelve falso falla.

assert (1===2, ''testing if 1=1'');


La palabra o función "afirmar" se usa principalmente para probar partes de la aplicación.

Las funciones Assert son una forma breve de indicar al programa que verifique la condición (también llamada "aserción") y si la condición no es Verdadera, generará un error.

Así que veamos cómo se vería en "código normal"

if (typeof "string" === "array") { throw Error(''Error: "string" !== "array"''); }

Con assert puedes simplemente escribir:

assert(typeof "string" === "array")

En Javascript, no hay una función de assert nativa, así que tienes que usar una de alguna biblioteca.

Para una introducción simple, puedes consultar este artículo:

http://fredkschott.com/post/2014/05/nodejs-testing-essentials/

Espero que ayude.


Las otras respuestas son buenas: no hay una función de afirmación integrada en ECMAScript5 (por ejemplo, JavaScript que funciona básicamente en todas partes), pero algunos navegadores se lo ofrecen o tienen complementos que proporcionan esa funcionalidad. Si bien es probable que sea mejor usar una biblioteca bien establecida / popular / mantenida para esto, para fines académicos, una función de "aseveración del hombre pobre" podría tener este aspecto:

const assert = function(condition, message) { if (!condition) throw Error(''Assert failed: '' + (message || '''')); }; assert(1 === 1); // Executes without problem assert(false, ''Expected true''); // Yields ''Error: Assert failed: Expected true'' in console


No hay assert en JavaScript (todavía; se habla de agregar uno , pero está en una etapa temprana). Tal vez estás usando alguna biblioteca que proporciona uno. El significado habitual es lanzar un error si la expresión pasada a la función es falsa; Esto es parte del concepto general de verificación de afirmación . Por lo general, las aserciones (como se llaman) se usan solo en compilaciones "de prueba" o "depuración" y se eliminan del código de producción.

Supongamos que tienes una función que se supone que siempre debe aceptar una cadena. Querrías saber si alguien llamó a esa función con algo que no era una cuerda. Así que podrías hacer:

assert(typeof argumentName === "string");

... donde assert arrojaría un error si la condición fuera falsa.

Una versión muy simple se vería así:

function assert(condition, message) { if (!condition) { throw message || "Assertion failed"; } }

Mejor aún, haga uso del objeto Error si el motor de JavaScript lo admite (puede que los realmente antiguos no), lo que tiene la ventaja de recopilar una traza de pila y otras cosas:

function assert(condition, message) { if (!condition) { message = message || "Assertion failed"; if (typeof Error !== "undefined") { throw new Error(message); } throw message; // Fallback } }

Incluso IE8 tiene Error (aunque no tiene la propiedad de stack , pero sí los motores modernos [incluido el IE moderno]).


Probablemente vino con una biblioteca de prueba que algunos de tus códigos están usando. Este es un ejemplo de uno (es probable que no sea la misma biblioteca que usa el código, pero muestra la idea general):

http://chaijs.com/guide/styles/#assert


Si la afirmación es falsa, se muestra el mensaje. Específicamente, si el primer argumento es falso, el segundo argumento (el mensaje de cadena) se registrará en la consola de herramientas del desarrollador. Si el primer argumento es verdadero, básicamente no pasa nada. Un ejemplo simple: estoy usando Google Developer Tools:

var isTrue = true; var isFalse = false; console.assert(isTrue, ''Equals true so will NOT log to the console.''); console.assert(isFalse, ''Equals false so WILL log to the console.'');



Si usa un paquete web, puede usar la biblioteca de aserción node.js. Aunque afirman que "no pretende ser una biblioteca de afirmación de propósito general", parece estar más que bien para aserciones ad hoc, y parece que no existe ningún competidor en el espacio del Nodo de todos modos (Chai está diseñado para pruebas de unidad).

const assert = require(''assert''); ... assert(jqXHR.status == 201, "create response should be 201");

Necesitas usar webpack o browserify para poder usar esto, así que obviamente esto solo es útil si ya están en tu flujo de trabajo.


verifique esto: http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/

es para probar JavaScript. Sorprendentemente, en apenas cinco o seis líneas, este código proporciona un gran nivel de poder y control sobre su código, al realizar pruebas.

La función de afirmación acepta dos parámetros:

resultado: un valor booleano, que hace referencia a si su prueba fue aprobada o no

Descripción: Una breve descripción de su prueba.

La función de afirmación simplemente crea un elemento de la lista, aplica una clase de "aprobado" o "falla", dependiendo de si su prueba se volvió verdadera o falsa, y luego agrega la descripción al elemento de la lista. Finalmente, ese bloque de codificado se agrega a la página. Es una locura simple, pero funciona perfectamente.


assert() no es una función javascript nativa. Es una función personalizada que alguien hizo. Tendrá que buscarlo en su página o en sus archivos y publicarlo para que cualquiera lo ayude a determinar lo que está haciendo.


Las respuestas anteriores se pueden mejorar en términos de rendimiento y compatibilidad.

Marque una vez si el objeto Error existe, si no lo declara:

if (typeof Error === "undefined") { Error = function(message) { this.message = message; }; Error.prototype.message = ""; }

Luego, cada aserción verificará la condición y siempre lanzará un objeto Error

function assert(condition, message) { if (!condition) throw new Error(message || "Assertion failed"); }

Tenga en cuenta que la consola no mostrará el número de línea de error real, sino la línea de la función de assert , que no es útil para la depuración.