Unit tests: test each component in isolation