NodeJS – Testes com Assert – Parte 1

NodeJS – Testes com Assert – Parte 1

Olá e bem vindo de volta, para você que esta ai do outro lado lendo e para min que pretendo voltar a escrever com maior frequência neste blog.

Enfim, entre idas e vindas, oque pretendo abordar neste post e nos próximos é um pouco sobre NodeJS. É cada vez mais comum e altamente recomendado em projetos de software, escrever testes unitários para as funcionalidades de seu aplicativo ou sistema, irei explorar o modulo de “Assertion” nativo do NodeJS.

Você pode encontrar os exemplos e a documentação oficial aqui.

A maior parte dos métodos do módulo de “assert” estão presentes desde as versões 0.x.x, ou seja, você pode usá-los à algum tempo. Outro ponto importante é que o módulo esta “flegado” em estabilidade “3 – Locked“, portanto estável para uso e fechado.

Assert module

Como temos o modulo assert no core do NodeJS não existe a necessidade de “npm install”, obviamente o NodeJS deve estar instalado.

assert(value[,message])

Você pode usar assert() ou assert.ok()

Onde o primeiro parâmetro é o valor a ser validado, o método espera sempre uma variável válida, valores que validam OK: boleano true, números diferentes de zero(positivos ou negativos), texto diferente de vazio (“[vazio]”) e objetos undefined, valores  fora dessas opções implicarão em AssertionError, portando não validos. O segundo parâmetro é opcional e usado para exibir uma mensagem em caso de validação negativa.

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

Para o método deepEqual é verificado entre dois objetos, actual expected, a igual em profundidade entre eles. Neste método valores primitivos são comparados em igualdade pelo operado ( == ) e não ( === ).

Veja que o método verifica a arvore do objeto e nome dos nós assim como verifica os valores no nós. Na linha 23 temos um AssertionError, pois o nó de nome b tem valor 2 e o esperado seria 1. Na linha 27 temos uma validação OK, pois a comparação da arvore de nós do objetos e os valores são inteiramente iguais. Assim como no método anterior o parâmetro message é opcional para exibir uma mensagem em caso de validação negativa.

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

Neste método temos uma verificar em profundidade similar ao método deepEqual, porém, a comparação de igual utilizar o operador ( === ) e também compara-se os métodos em prototype dos objetos.

Veja que na linha 3 o método deepEqual considera 1 == ‘1’ e isto esta correto, mas no método deepStrictEqual a comparação 1 === ‘1’ não é verdadeira.

 

Este foi o primeiro post desse assunto, pretendo em breve escrever a próxima parte do assunto. Se puder deixar um comentário abaixo, criticas e sugestões são extremamente bem vindos.

Até a próxima.

Related Posts