AGENT SKILL
testing-strategy
Comprehensive testing workflow combining TDD, real implementations (no mocking), and E2E testing. Use when implementing features, writing tests, or setting up test infrastructure.
- License 许可
- MIT
- 最近更新
- 2026-06-24
- Stars
- ★ 66
- Forks
- 24
01 前言 Front Matter
- name
- testing-strategy
- license
- MIT
- metadata
- { "author": "obra/superpowers", "version": "2.0" }
- description
- Comprehensive testing workflow combining TDD, real implementations (no mocking), and E2E testing. Use when implementing features, writing tests, or setting up test infrastructure.
- allowed-tools
- Read, Glob, Grep, Edit, Write, Bash
02 资源文件 1
- 参考文档skill-report.json9.8 KB
03 SKILL.md 正文
Testing Strategy
TDD와 실제 구현 기반 테스트를 결합한 통합 테스트 스킬입니다.
Iron Law
"NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST"
RED-GREEN-REFACTOR Cycle
1. RED - 실패하는 테스트 작성
- 원하는 동작을 보여주는 최소한의 테스트 작성
- 테스트가 실패하는지 반드시 확인
2. GREEN - 테스트 통과시키기
- 테스트를 통과시키는 가장 단순한 코드 작성
- 완벽한 코드 X, 동작하는 코드 O
3. REFACTOR - 리팩토링
- 코드 정리 (중복 제거, 명명 개선)
- 테스트가 계속 통과하는지 확인
No Mocking Policy
실제 구현을 테스트하라
❌ 금지
jest.mock('./database');
jest.mock('./api');
✅ 허용
// 실제 테스트 DB 또는 인메모리 DB 사용
const db = await createTestDatabase();
// MSW로 실제 HTTP 계층 테스트
const server = setupServer(
rest.get('/api/users', (req, res, ctx) => {
return res(ctx.json([{ id: 1, name: 'Test' }]));
})
);
E2E Testing (Playwright)
test('user can complete checkout', async ({ page }) => {
await page.goto('/products');
await page.click('[data-testid="add-to-cart"]');
await page.click('[data-testid="checkout"]');
await expect(page.locator('.confirmation')).toBeVisible();
});
Test Categories
| 유형 | 범위 | 도구 |
|---|---|---|
| Unit | 함수/클래스 | Vitest, Jest |
| Integration | 모듈 간 연동 | 실제 DB, MSW |
| E2E | 전체 사용자 흐름 | Playwright |
Checklist
- [ ] 모든 함수가 테스트됨
- [ ] 테스트가 먼저 실패하는 것을 확인
- [ ] Mock 사용 없음 (MSW 허용)
- [ ] E2E로 핵심 흐름 검증