Asserts em Nodejs — Parte 1

O node propositalmente vem com um modulo interno chamado assert module para realizar os testes. Basta chamar o modulo na aplicação com o esse código require(‘assert’) atribuindo a uma variável para posteriormente utilizar o modulo.

A API do módulo assert está bloqueado. Isto significa que não haverá adições ou alterações em qualquer dos métodos implementados e expostos pelo módulo.

assert(value[, message]) ou assert.ok(value[, message])
const assert = require('assert');

assert(true); // OK
assert(1); // OK
assert(false); // throws "AssertionError: false == true"
assert(0); // throws "AssertionError: 0 == true"
assert(false, 'it\'s false'); // throws "AssertionError: it's false"
assert.ok(true); // OK
assert.ok(1); // OK
assert.ok(false); // throws "AssertionError: false == true"
assert.ok(0); // throws "AssertionError: 0 == true"
assert.ok(false, 'it\'s false'); // throws "AssertionError: it's false"

Essas são as duas formas de validar a verdade em um teste.

Para realizar teste de igualdade a estrutura não é muito diferente. Podendo utilizar o deepEqual e o deepStrictEqual. A principal diferença delas é o tipo de operação realizada entre a parte actual e expected quando os valores são de tipos primitivos. Para o teste realizado com deepEqual o operador utilizado é o “==”, já para o deepStrictEqual é utilizado o operador “===”.

assert.deepEqual(actual, expected[, message])
assert.deepStrictEqual(actual, expected[, message])

Aqui conseguimos demonstrar melhor a diferença entre os dois tipos de testes de igualdade.

const assert = require('assert');

assert.deepEqual({a:1}, {a:'1'});
// OK, because 1 == '1'

assert.deepStrictEqual({a:1}, {a:'1'});
// AssertionError: { a: 1 } deepStrictEqual { a: '1' }
// because 1 !== '1' using strict equality

Por hoje já está bom, mas esse assunto ainda está só no inicio e teremos outras postagens.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.