При использовании архитектуры FSD (Feature-Sliced Design) и Jest для тестирования, файлы с расширением .test.ts
обычно хранятся в той же директории, что и тестируемый код. Это позволяет легко находить и поддерживать тесты вместе с кодом, который они тестируют.
Пример структуры проекта:
src/
├── app/
│ ├── index.ts
│ └── app.test.ts
├── features/
│ ├── auth/
│ │ ├── ui/
│ │ │ ├── LoginForm.tsx
│ │ │ └── LoginForm.test.tsx
│ │ ├── model/
│ │ │ ├── authSlice.ts
│ │ │ └── authSlice.test.ts
│ │ └── index.ts
│ └── profile/
│ ├── ui/
│ │ ├── ProfileCard.tsx
│ │ └── ProfileCard.test.tsx
│ ├── model/
│ │ ├── profileSlice.ts
│ │ └── profileSlice.test.ts
│ └── index.ts
├── shared/
│ ├── api/
│ │ ├── api.ts
│ │ └── api.test.ts
│ ├── ui/
│ │ ├── Button.tsx
│ │ └── Button.test.tsx
│ └── index.ts
└── index.ts
Описание:
app/
:- Здесь хранятся файлы, связанные с инициализацией приложения. Тесты для этих файлов также находятся в этой директории.
features/
:- Каждая фича (например,
auth
,profile
) содержит свои UI-компоненты, модели и другие части. Тесты для каждой части фичи находятся в соответствующих поддиректориях. - Например, тесты для
LoginForm.tsx
находятся вLoginForm.test.tsx
, а тесты дляauthSlice.ts
находятся вauthSlice.test.ts
.
- Каждая фича (например,
shared/
:- Здесь хранятся общие компоненты, утилиты и другие ресурсы, которые используются в нескольких фичах. Тесты для этих ресурсов также находятся в соответствующих поддиректориях.
Преимущества такой структуры:
- Локальность: Тесты находятся рядом с тестируемым кодом, что упрощает их поиск и поддержку.
- Модульность: Каждая фича и общий код имеют свои тесты, что упрощает управление тестами и их запуск.
- Прозрачность: Структура проекта становится более прозрачной, так как тесты являются неотъемлемой частью кодовой базы.
Таким образом, файлы .test.ts
хранятся в той же директории, что и тестируемый код, что соответствует принципам FSD и упрощает работу с тестами в проекте.