Unit Tests
Fast, deterministic tests that verify individual functions, methods, or components in isolation with test doubles for dependencies.
less than a minute
Adapted from Dojo Consortium
A reliable test suite is essential for continuous delivery. These pages cover the different types of tests, when to use each, and best practices for test architecture.
| Type | Purpose |
|---|---|
| Unit Tests | Verify individual components in isolation |
| Integration Tests | Verify components work together |
| Functional Tests | Verify user-facing behavior |
| End-to-End Tests | Verify complete user workflows |
| Contract Tests | Verify API contracts between services |
| Static Analysis | Catch issues without running code |
| Test Doubles | Patterns for isolating dependencies in tests |
This content is adapted from the Dojo Consortium, licensed under CC BY 4.0.
Fast, deterministic tests that verify individual functions, methods, or components in isolation with test doubles for dependencies.
Deterministic tests that verify how units interact together or with external system boundaries using test doubles for non-deterministic dependencies.
Deterministic tests that verify all modules of a sub-system work together from the actor’s perspective, using test doubles for external dependencies.
Non-deterministic tests that validate the entire software system along with its integration with external interfaces and production-like scenarios.
Non-deterministic tests that validate test doubles by verifying API contract format against live external systems.
Code analysis tools that evaluate non-running code for security vulnerabilities, complexity, and best practice violations.
Patterns for isolating dependencies in tests: stubs, mocks, fakes, spies, and dummies.