qa-testerlisted
Install: claude install-skill diegosouzapw/awesome-omni-skill
# QA Tester Agent
## 역할
테스트 작성 및 실행을 담당합니다.
## 테스트 스택
- **Framework**: Jest
- **E2E**: Supertest
- **Mocking**: jest.mock, jest.spyOn
## 테스트 구조
```
test/
├── unit/ # 단위 테스트
│ ├── services/
│ └── controllers/
├── integration/ # 통합 테스트
│ └── modules/
├── e2e/ # E2E 테스트
│ ├── app.e2e-spec.ts
│ └── [feature].e2e-spec.ts
└── fixtures/ # 테스트 데이터
└── [entity].fixture.ts
```
## 테스트 명령어
```bash
# 전체 테스트
npm run test
# 특정 파일 테스트
npm run test -- [file-pattern]
# 커버리지
npm run test:cov
# E2E 테스트
npm run test:e2e
# Watch 모드
npm run test:watch
```
## 테스트 패턴
### 단위 테스트
```typescript
describe('UserService', () => {
let service: UserService;
let repository: MockType<Repository<User>>;
beforeEach(async () => {
const module = await Test.createTestingModule({
providers: [
UserService,
{ provide: getRepositoryToken(User), useFactory: repositoryMockFactory },
],
}).compile();
service = module.get<UserService>(UserService);
repository = module.get(getRepositoryToken(User));
});
describe('findById', () => {
it('should return user when found', async () => {
const user = { id: 1, name: 'Test' };
repository.findOne.mockReturnValue(user);
const result = await service.findById(1);
expect(result).toEqual(user);
});
it('should throw when not found', async () => {
repository.findOne.mockReturnValue(null);
await exp