testing-patterns
Write Better Jest Tests
Также доступно от: 0xDarkMatter,0xDarkMatter,ChrisWiles,CleanExpo
Этот набор предоставляет готовые к использованию паттерны тестирования Jest, включая фабричные функции, пользовательские утилиты рендеринга и стратегии мокирования, которые помогают разработчикам писать поддерживаемые тесты по принципу DRY, следуя методологии TDD.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «testing-patterns». Создать фабричную функцию для данных пользователя
Ожидаемый результат:
```typescript
interface User {
id: string;
name: string;
email: string;
role: 'admin' | 'user';
}
const getMockUser = (overrides?: Partial<User>): User => ({
id: '123',
name: 'John Doe',
email: 'john@example.com',
role: 'user',
...overrides,
});
```
Использование «testing-patterns». Покажите пользовательскую функцию рендеринга
Ожидаемый результат:
```typescript
export const renderWithTheme = (ui: React.ReactElement) => {
return render(
<ThemeProvider>{ui}</ThemeProvider>
);
};
```
Использование «testing-patterns». Как мне структурировать мои тесты?
Ожидаемый результат:
Используйте блоки describe для группировки связанных тестов: describe('ComponentName', () => { describe('Rendering', () => {...}); describe('User interactions', () => {...}); describe('Edge cases', () => {...}); });
Аудит безопасности
БезопасноSecurity review completed. All 42 static findings are false positives triggered by the static analyzer misinterpreting: (1) markdown code formatting backticks as shell commands, (2) TypeScript generics like Partial<X> as cryptographic patterns, and (3) the word 'APIs' as network reconnaissance. The skill is legitimate Jest testing documentation with no security concerns.
Оценка качества
Что вы можете построить
Настройка тестовой инфраструктуры
Создавайте пользовательские функции рендеринга и фабричные утилиты, которые оборачивают компоненты необходимыми провайдерами, например ThemeProvider, уменьшая количество шаблонного кода в каждом тесте.
Написание поддерживаемых юнит-тестов
Используйте фабричные функции для генерации согласованных тестовых данных, что упрощает чтение, поддержку и обновление тестов при изменении структур данных.
Следование методологии TDD
Применяйте цикл red-green-refactor, сначала написав непроходящие тесты, затем реализуя минимальный код для прохождения, обеспечивая, чтобы тесты направляли разработку.
Попробуйте эти промпты
Помогите мне настроить базовый тестовый файл для React-компонента. Покажите, как создать пользовательскую функцию рендеринга, которая оборачивает компонент с ThemeProvider.
Создайте фабричную функцию getMockUser, которая возвращает объект пользователя со значениями по умолчанию для id, name, email и role. Покажите, как переопределить конкретные свойства с помощью типа Partial.
Покажите, как замокировать модуль, например 'utils/analytics' в Jest. Включите доступ к моку в тесте и как замокировать возвращаемые значения.
Проведите меня через рабочий процесс TDD для добавления новой функции. Начните с написания непроходящего теста, затем покажите минимальную реализацию для его прохождения.
Лучшие практики
- Всегда используйте фабричные функции для пропсов и данных, чтобы тесты были DRY и согласованными
- Тестируйте поведение через публичный API, а не детали реализации
- Используйте описательные названия тестов, объясняющие, какое поведение тестируется
Избегать
- Избегайте тестирования поведения моков вместо реального поведения компонента
- Не дублируйте тестовые данные между тестами — используйте вместо этого фабричные функции
- Избегайте тестирования деталей реализации, которые могут измениться при рефакторинге