1
resposta

Função describe

Um arquivo de teste pode ter mais de uma função describe com varias funções it? ou o ideal é que tenha apenas um describe para cada arquivo de teste?

1 resposta

Sim, um arquivo pode ter múltiplos describes para contextualizar grupos de classes, método, funções e etc...

Por exemplo, em um arquivo chamado carrinho.test.js utilizado para testar a classe Carrinho, nós podemos ter a seguinte estrutura:

describe('Deve testar a classe Carrinho', () => {
    describe('Deve testar os ítens do carrinho', () => {
        it('Deve testar a adição de itens no carrinho', () => {
            ...
        })
        it('Deve testar a remoção de itens no carrinho', () => {
            ...
        })
    })

    describe('Deve testar os cálculos do carrinho', () => {
        it('Deve testar o cálculo de frete do carrinho', () => {
            ...
        })
        it('Deve testar o cálculo total do carrinho', () => {
            ...
        })
    })
})

Resumindo, você pode usar o describe para estruturar os testes da forma que fique mais clara, organizada e contextualizada. Note que é importante manter um describe "macro", que seria uma classe ou uma função, e os describes internos para separar os métodos, ou funções de métodos em grupos menores e mais específicos.