В сложном приложении, используя Jest, структурирование тестов и блоков describe должно быть выполнено иерархически. Верхний уровень describe может представлять весь модуль или функциональность, которая тестируется. Вложенные блоки describe могут представлять каждую функцию или метод, который тестируется. Внутри этих блоков находятся отдельные тестовые случаи.

Пример иерархической структуры:

// BAD
describe('Unit/hooks/function/useQueryIdParams', () => {
    describe('Тестовая группа №1', () => {
        it('Хук должен вернуть', () => {})
    })
 
    describe('Тестовая группа №2', () => {
        it('Хук должен вернуть', () => {})
    })
})
 
// GOOD
describe('Unit/hooks/function/useQueryIdParams', () => {
    describe('Success cases', () => {
        it('Хук должен вернуть', () => {})
    })
 
    describe('Error cases', () => {
        it('Хук должен вернуть', () => {})
    })
})
 
// GOOD TOO
describe('Unit/hooks/function/useQueryIdParams', () => {
    describe('Вызов с 1 аргументом', () => {
        it('Хук должен вернуть', () => {})
 
        it('Хук не должен вернуть', () => {})
    })
 
    describe('Вызов без аргументов', () => {
        it('Хук должен вернуть', () => {})
 
        it('Хук не должен вернуть', () => {})
    })
})

Пояснение:

  1. Верхний уровень describe: Представляет весь модуль или функциональность, которая тестируется.
  2. Вложенные блоки describe: Представляют каждую функцию или метод, который тестируется.
  3. Отдельные тестовые случаи: Находятся внутри вложенных блоков describe и представляют конкретные сценарии тестирования.

Назад