# Testing

Every new feature should include tests.

Tests should verify:

- expected behavior
- edge cases
- error handling
- regressions

Tests should be:

- deterministic
- hermetic when practical
- independent of developer machines

Avoid tests that depend on:

- timing
- network connectivity
- local configuration
