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.

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.
Vamos começar criando nosso aquivo package.json
.
npm init -y
Esse comando vai criar um package.json
com as configurações padrões.
Você vai precisar, caso ainda não tenha instalado, o Jest, instalado como Dev
npm i -D jest
Testando um função que soma
//functions.js
const functions = {
add: (a, b) => a + b
}
Para testar:
//functions.test.js
const functions = require("./functions");
test("Vamos testar uma função que soma", () => {
expect(functions.add(2, 2)).toBe(4);
})

Testando o que NÃO é:
test("Vamos testar uma função que soma: o que não é", () => {
expect(functions.add(2, 2)).not.toBe(5);
})
Testando para valores "falsy"
// toBeNull
test('Deve ser null', () => {
expect(functions.isNull()).toBeNull();
});
// toBeFalsy
test('Deve ser falsy', () => {
expect(functions.verificador(null)).toBeFalsy();
});
Testando objetos
// toEqual
test('Usuário retornado deve ser Jorge Pires em forma de JSON', () => {
expect(functions.CriarUsuario()).toEqual({
firstName: 'Jorge',
lastName: 'Pires'
});
});
Menor do que
// Menor do que
test('Deve ser menor do que', () => {
const load1 = 800;
const load2 = 800;
expect(load1 + load2).toBeLessThanOrEqual(1600);
});
Expressões regulares (Regex)
// Regex, pode ser útil para testar id do mongoose caso modifique o id
test('Não existe s em Jorge', () => {
expect('Jorge').not.toMatch(/I/s);
});
Testando conteúdo de um array/JSON
// JSON
test('Testando para admins', () => {
usernames = { name1: 'Pedro', name2: 'Pedrosa', name3: 'admin' };
expect(usernames).toMatchObject({ name3: 'admin' });
});
// Arrays
test('Testando para admins', () => {
usernames = ['john', 'karen', 'admin'];
expect(usernames).toContain('admin');
});
Last updated
Was this helpful?