How do components that communicate through well-defined interfaces help testing?
- By encapsulating the tests in separate components
- By ensuring a consistent architectural strategy
- By allowing dependent components to be easily replaced with test doubles
- By defining fixed interfaces early so developer can build against it