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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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.