listen to tests - tests smell and pattern Goals/Context no board tests are required. The test suite consists of "narrow" tests focused on specific concepts. Although broad integration tests can be added as a safety net, their failure indicates a gap in the main test suite easy refactoring no magic. Tools that automatically remove busywork, such as dependency-injection and auto-mock frameworks, are not required. Not a silver bullet. Design mistakes are inevitable, requiring continuous attention to design and refactoring. benefits from learning to listen to test smell keep knowledge local. The "magic" need to create mocks could cause the knowledge to leak between components. if we can keep knowledge local to an object (either internal or passed in), then its implementation is independent of its context. We can safely move it where we like. Do this consistently and your application, built out of pluggable components, will be easy to change. If it's explicit, we c
Key ideas practice TDD as a design technique and not as a testing technique Software development as a learning process. Expose uncertainly early by testing our assumption as early as possible we use mock objects to identify the essential interactions between modules/objects. This leads to more effective abstractions, which reduces the cost of changing the cost safely over time. Stub queries; expect actions??? Write code that depends as little as possible on its context. programming by intention Test-Driven Development (TDD) and Quality Software development as a learning process. The best approach a team can take is to use empirical feedback to learn about the system and its use and then apply it back to the system. Development is incremental and iterative. Incremental development builds a system feature by feature. Each feature is implemented as an end-to-end slice. As a result, the system is continuously integrated and ready for deployment. A system is deployable when the acceptance t