Testing Guidelines
Unit Tests
- •Test one thing per test
- •Use descriptive test names:
test_user_creation_fails_with_invalid_email - •Mock external dependencies
- •Keep tests fast and isolated
Integration Tests
- •Test API endpoints with realistic data
- •Verify database state changes
- •Clean up test data after each test
- •Use test fixtures for common scenarios
Running Tests
bash
# Run all tests npm test # Run unit tests only npm test:unit # Run integration tests (requires database) npm test:integration # Run tests with coverage npm test:coverage
Test Structure
code
tests/ ├── unit/ # Fast, isolated unit tests ├── integration/ # Tests requiring external services ├── fixtures/ # Shared test data └── helpers/ # Test utilities
Best Practices
- •Arrange-Act-Assert: Structure tests clearly
- •One assertion per test: When possible, test one behavior
- •Descriptive names: Test names should describe the scenario
- •No test interdependence: Tests should run in any order
- •Clean state: Each test starts with a known state
Coverage Goals
- •Aim for 80%+ line coverage
- •Focus on critical paths first
- •Don't sacrifice test quality for coverage numbers