Assert - Node.js
No tema anterior, para verificar o resultado de um teste, o valor obtido foi comparado com o resultado esperado:
if(result !== expectedResult) {
throw new Error(`Expected ${expectedResult}, but got ${result}`);
}
Essa comparação é bastante trivial e, de fato, é usada em muitos testes com pequenas variações. Para simplificar a verificação de resultados em testes, o Node.js possui um módulo embutido chamado assert
should.js
expect.js
assert
equal
A função assert.strictEqual()
assert.strictEqual(actual, expected[, message])
Os parâmetros actual
expected
message
operations.js
module.exports.multiply = function(x, y) {
return x * y;
}
Aqui, definimos uma função simples de multiplicação de dois números. Vamos testá-la criando o arquivo operations.test.js
const assert = require("assert");
const operations = require("./operations");
it("should multiply two numbers", function() {
const expected = 15;
const result = operations.multiply(3, 5);
assert.strictEqual(result, expected);
});
Se ambos os valores forem iguais, ao rodar o teste veremos na console que os testes passaram. Caso os valores não sejam iguais, veremos marcadores vermelhos com mensagens de erro:
c:\app> npm test > testapp@1.0.0 test > mocha *.test.js ✔ should multiply two numbers 1 passing (5ms)
Certamente, a utilização da função assert.strictEqual
Ao contrário da função assert.strictEqual()
assert.notStrictEqual()
it("should multiply two numbers", function() {
const expected = 15;
const result = operations.multiply(3, 5);
assert.notStrictEqual(result, expected);
});
Neste caso, o teste passará somente se os valores não forem iguais.