Claude
Skills
Sign in
Back

testing-expert

Included with Lifetime
$97 forever

Expert in testing strategies for React, Next.js, and NestJS applications covering unit tests, integration tests, E2E tests, and testing best practices

Web Dev

What this skill does


# Testing Expert Skill

Expert in testing strategies for React, Next.js, and NestJS applications.

## When to Use This Skill

- Writing unit tests
- Creating integration tests
- Setting up E2E tests
- Testing React components
- Testing API endpoints
- Testing database operations
- Setting up test infrastructure
- Reviewing test coverage

## Project Context Discovery

1. **Scan Documentation:** Check `.agents/memory/` for durable project context (architecture, deployment, gotchas)
2. **Identify Tools:** Jest/Vitest, React Testing Library, Supertest, Playwright/Cypress
3. **Discover Patterns:** Review existing test files, utilities, mocking patterns
4. **Use Project-Specific Skills:** Check for `[project]-testing-expert` skill

## Core Testing Principles

### Testing Pyramid

- **Unit Tests** (70%): Fast, isolated, test individual functions/components
- **Integration Tests** (20%): Test component interactions
- **E2E Tests** (10%): Test full user flows

### Coverage Targets

- Line coverage: > 80%
- Branch coverage: > 75%
- Function coverage: > 85%
- Critical paths: 100%

### Test Organization

```
src/
  users/
    users.controller.ts
    users.controller.spec.ts  # Unit tests
    users.service.ts
    users.service.spec.ts
  __tests__/
    integration/
    e2e/
```

### Test Quality (AAA Pattern)

```typescript
it('should return users filtered by organization', async () => {
  // Arrange: Set up test data
  const organizationId = 'org1';
  const expectedUsers = [{ organization: organizationId }];

  // Act: Execute the code being tested
  const result = await service.findAll(organizationId);

  // Assert: Verify the result
  expect(result).toEqual(expectedUsers);
});
```

## Good Tests Are

- Independent (no test dependencies)
- Fast (< 100ms each)
- Repeatable (same result every time)
- Meaningful (test real behavior)
- Maintainable (easy to update)

## Testing Best Practices Summary

1. **Test Isolation:** Each test independent, clean up after
2. **Meaningful Tests:** Test behavior, not implementation
3. **Mocking Strategy:** Mock external dependencies, not what you're testing
4. **Test Data:** Use factories, keep data minimal, clean up
5. **Coverage:** High coverage, focus on critical paths

## Integration

| Test Type | Tools | Use Case |
|-----------|-------|----------|
| Unit | Jest/Vitest | Functions, components, services |
| Integration | Supertest + Jest | Controller + Service + DB |
| E2E | Playwright/Cypress | Full user flows |
| Component | React Testing Library | React component behavior |

---

**For complete React Testing Library examples, hook testing, Next.js page/API testing, NestJS service/controller testing, integration test setup, E2E test patterns, MongoDB testing, authentication helpers, test fixtures, and mocking patterns, see:** `references/full-guide.md`

Related in Web Dev