Primeiros passos

Vamos aprender o básico do Jest.

Introdução

"Minha família inteira é da área médica. Um jantar de fim de semana em casa parece mais um daqueles episódios de seriados médicos da televisão: pessoas discutindo casos e como resolvê-los. Apesar de entender praticamente nada sobre medicina, uma coisa me chama muito a atenção: o fanatismo deles por qualidade. Um médico, ao longo de uma cirurgia, nunca abre mão de qualidade. Se o paciente falar para ele: “Doutor, o senhor poderia não lavar a mão e terminar a cirurgia 15 minutos mais cedo?”, tenho certeza que o médico negaria na hora. Ele saberia que chegaria ao resultado final mais rápido, mas a chance de um problema é tão grande, que simplesmente não valeria a pena." Mauricio Aniche (Author) sobre TDD.

Acho que esse gato programa melhor do que nós sem TDD

Olá a todos, enquanto gravava o curso, percebi que precisava revisar, ou mesmo estudar, algumas funcionalidades do Jest. Aproveitei para criar essa seção adicional! 😘 De forma alguma pretendo se exaustivo! Espero que isso ajude pessoas que além do Mongoose, também estejam entrando no mundo do TDD, testes de unidades com Jest.

Este tutorial é fortemente baseado em "Jest Crash Course - Unit Testing in JavaScript"

Uma alternativa para o Jest é o Mocha.

Sugestão de leitura: Fernando Doglio. REST API Development with Node.js: Manage and Understand the Full Capabilities of Successful REST Development.

Vamos começar criando nosso aquivo package.json.

Esse comando vai criar um package.json com as configurações padrões.

Um problema que demorei a entender o porquê no início foi a necessidade de package.json, sem ele, dá erros, e os erros não são informativos o suficiente para entender, nem mesmo para jogar no Google.

Você vai precisar, caso ainda não tenha instalado, o Jest, instalado como Dev

Testando um função que soma

Para testar:

Resultado do teste da função que soma

Testando o que NÃO é:

Estou apresentado, para efeito de estudo, alguns casos. Não vamos usar todos os esses, ou mesmo podemos usar casos diferentes. 😎 Não deixe de consultar a documentação oficial caso esteja adaptando esses exemplos para o seu caso.

Testando para valores "falsy"

Testando objetos

Estamos usando toEqual no lugar de toBe. Algumas pista por que???

Menor do que

Expressões regulares (Regex)

Testando conteúdo de um array/JSON

Códigos prontos aqui.

Last updated

Was this helpful?