tdd-vitest-typescript
Настройка TDD с Vitest и TypeScript
Написание тестов до кода обеспечивает надежное и поддерживаемое программное обеспечение. Этот навык проведет вас через цикл Красный-Зеленый-Рефакторинг с Vitest, охватывая паттерны тестирования, стратегии мокирования и лучшие практики TDD.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "tdd-vitest-typescript". Help me write a test for a user registration feature using TDD
Erwartetes Ergebnis:
## TDD Approach: User Registration
### 1. Red - Write Failing Test
```typescript
describe('User Registration', () => {
it('creates new user account with valid email', async () => {
const result = await registerUser({
email: 'new@example.com',
password: 'secure123',
});
expect(result.success).toBe(true);
expect(result.user.email).toBe('new@example.com');
});
it('rejects registration with existing email', async () => {
// ... test for duplicate email handling
});
it('rejects weak passwords', async () => {
// ... test for password validation
});
});
```
### 2. Green - Minimal Implementation
Write just enough code to pass the tests.
### 3. Refactor
Improve the implementation while keeping tests green.
Verwendung von "tdd-vitest-typescript". How do I set up Vitest with TypeScript?
Erwartetes Ergebnis:
## Vitest + TypeScript Setup
### Install Dependencies
```bash
npm install -D vitest @vitest/ui @vitest/coverage-v8 typescript @types/node
```
### Create vitest.config.ts
```typescript
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
globals: true,
environment: 'node',
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
},
},
});
```
### Configure tsconfig.json
```json
{
"compilerOptions": {
"types": ["vitest/globals", "node"],
"esModuleInterop": true,
"strict": true
}
}
```
Sicherheitsaudit
Niedriges RisikoLegitimate TDD educational skill. Static analyzer flagged benign code patterns: TypeScript template literals misidentified as shell backticks, regex validation patterns misidentified as weak crypto, and project scaffolding fs operations. No malicious intent detected.
Probleme mit niedrigem Risiko (3)
Risikofaktoren
📁 Dateisystemzugriff (2)
⚙️ Externe Befehle (2)
Qualitätsbewertung
Was du bauen kannst
Начало новой функции с TDD
Разработчик хочет создать новую функцию, используя разработку через тестирование. Навык проведет его через написание сначала падающих тестов, реализацию минимального кода и рефакторинг с сохранением зеленого состояния тестов.
Изучение паттернов тестирования TypeScript
Разработчик, новичок в тестировании TypeScript, хочет изучить паттерны для типизированных тестовых данных, тестирования обобщенных функций и правильных стратегий мокирования с Vitest.
Улучшение качества тестов
Команда хочет улучшить свой набор тестов. Навык помогает выявить антипаттерны, такие как тестирование деталей реализации, сложная настройка и неясные названия тестов.
Probiere diese Prompts
Помогите мне настроить разработку через тестирование с использованием Vitest и TypeScript. Я хочу следовать циклу Красный-Зеленый-Рефакторинг для создания новой функции.
Сначала напишите падающий тест для класса Calculator с методами add, subtract, multiply и divide. Затем покажите мне минимальную реализацию, чтобы тесты проходили.
Как мне замокировать внешнюю зависимость API в Vitest? Мне нужно протестировать сервис, который вызывает удаленный API, без выполнения реальных сетевых запросов.
Просмотрите мой тестовый код и выявите антипаттерны. Мои тесты хрупкие и ломаются при рефакторинге, хотя поведение не изменилось.
Bewährte Verfahren
- Сначала пишите падающие тесты перед любым кодом реализации, чтобы четко определить поведение
- Сохраняйте тесты сфокусированными с единственной проверкой на одну область ответственности для облегчения отладки
- Тестируйте публичное поведение и результаты, а не детали приватной реализации
Vermeiden
- Тестирование деталей реализации, таких как приватные методы, которые могут измениться во время рефакторинга
- Использование произвольных задержек сна или таймаутов в тестах вместо ожидания реальных условий
- Создание огромной настройки теста с десятками строк шаблонного кода вместо переиспользуемых вспомогательных функций