Pular para o conteúdo principal
Versão: v3.x.x

Organizando Testes

Existem diversas motivações para organizar os testes de forma mais eficiente:

  • Testes diferentes geralmente têm seus próprios arquivos.
  • Uso de escopos isolados para declarar as mesmas variáveis ou isolamento de um teste do outro no mesmo arquivo.
  • Agrupamento de múltiplos testes do mesmo método.

Vamos criar dois métodos básicos (soma e sub) para serem testados:

export const soma = (a, b) => a + b;
export const sub = (a, b) => a - b;

Separando testes com responsabilidades diferentes

Crie um arquivo para testar o método soma e outro para o método sub.

import { test, assert } from 'poku';
import { soma } from '../../src/calc.mjs';

test('Testando o método "soma"', () => {
assert(soma(0, 0), 0, 'deve retornar zero');
assert(soma(0, 1), 1, 'deve retornar um');
assert(soma(1, 1), 2, 'deve retornar dois');
});

Categorizando testes com responsabilidades diferentes

Crie um arquivo único para testar tanto o método soma quanto o sub.

import { test, assert } from 'poku';
import { soma, sub } from '../../src/calc.mjs';

test('Testando o método "soma"', () => {
assert(soma(0, 0), 0, 'deve retornar zero');
assert(soma(0, 1), 1, 'deve retornar um');
assert(soma(1, 1), 2, 'deve retornar dois');
});

test('Testando o método "sub"', () => {
assert(sub(1, 1), 0, 'deve retornar zero');
assert(sub(2, 1), 1, 'deve retornar um');
assert(sub(3, 1), 2, 'deve retornar dois');
});

Descrevendo testes com responsabilidades diferentes

Crie um arquivo único para testar tanto o método soma quanto o sub.

import { describe, it, assert } from 'poku';
import { soma, sub } from '../../src/calc.mjs';

describe('Testando métodos de cálculo', () => {
it('Método "soma"', () => {
assert(soma(0, 0), 0, 'deve retornar zero');
assert(soma(0, 1), 1, 'deve retornar um');
assert(soma(1, 1), 2, 'deve retornar dois');
});

it('Método "sub"', () => {
assert(sub(1, 1), 0, 'deve retornar zero');
assert(sub(2, 1), 1, 'deve retornar um');
assert(sub(3, 1), 2, 'deve retornar dois');
});
});
  • Ao usar describe + it com mensagens, é comum não incluir a mensagem no assert.

dica

Você pode escolher usar describe + it, ou test + describe, ou test + it e assim por diante, mas observe que, se você usar mensagens, elas só serão formatadas corretamente para:

  • assert
  • test
  • test + assert
  • it
  • it + assert
  • describe
  • describe + assert
  • describe + it
  • describe + it + assert
  • describe + assert + it + assert
  • describe + test
  • describe + test + assert
  • describe + assert + test + assert
Cuidado

Evite combinar test e it ao usar hooks como beforeEach (por exemplo, test + test, it + it, test + it, etc.).


nota

Se você encontrar algum erro de digitação, sinta-se à vontade para abrir um Pull Request corrigindo-o.