A função describe
do Jest é usada para criar um contexto para nossos testes. Ela funciona de forma parecida com os testes, recebendo dois parâmetros:
- Uma descrição do contexto.
- Uma função onde os testes que pertencem a esse contexto devem ficar aninhados.
O código abaixo mostra como ela pode ser usada.
describe('aliquotaIR', () => {
test('retorna a tarifa de 22,5% quando recebe o valor de 180 dias', () => {
const tempoInvestidoEmDias = 180;
const tarifa = aliquotaIR(tempoInvestidoEmDias);
expect(tarifa).toBeCloseTo(0.225);
});
});
Nesse caso, a descrição do contexto é o nome da unidade que está sendo testada. Além disso, o contexto também fica visível quando executamos os testes.
PASS src/__tests__/aliquotaIR.test.ts
aliquotaIR
✓ retorna a tarifa de 22,5% quando recebe o valor de 180 dias
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
A função it
O Jest também expõe a função it
. Esta função é um alias para a função test
, mas se encaixa melhor em termos de sintaxe com essa abordagem usando o describe
.
describe('aliquotaIR', () => {
it('retorna a tarifa de 22,5% quando recebe o valor de 180 dias', () => {
const tempoInvestidoEmDias = 180;
const tarifa = aliquotaIR(tempoInvestidoEmDias);
expect(tarifa).toBeCloseTo(0.225);
});
});
Neste caso, podemos entender que o it
se refere ao contexto. Sendo assim, podemos ler como uma única frase: aliquotaIR retorna a tarifa de 22,5% quando recebe o valor de 180 dias
.
Contexto dentro de contexto
Podemos usar o describe
para criar outro nível de contexto para explicar o cenário, e o teste abaixo dele.
describe('aliquotaIR', () => {
describe('dado o valor de 180 dias', () => {
it('retorna a tarifa de 22,5%', () => {
const tempoInvestidoEmDias = 180;
const tarifa = aliquotaIR(tempoInvestidoEmDias);
expect(tarifa).toBeCloseTo(0.225);
});
});
});
Algumas pessoas podem odiar isso (inclusive eu ) porque os testes ficam mais difíceis de ler a medida eles aumentam, mas é importante saber que você pode separar cada informação em um nível diferente.
Conclusão
A função describe
pode ajudar quando você quiser criar diferentes contextos dentro do mesmo arquivo, mas é importante tomar cuidado para não deixar os testes difíceis de manter.