TDD with Sintegration tests
One criticism of unit testing is that the unit test code will be tightly coupled with the implementation. Changing production code will have a rippling effect that will force updating, adding, and removing multiple unit tests.
These are ways to reduce coupling with unit tests, which are discussed in Chapter 6, The FIRSTHAND Guidelines of TDD, in The single-behavior guideline section. However, the provided solutions do reduce coupling but don’t get rid of them completely.
On the other hand, integration tests have a dependency on the input and output of the tested functionality. If we are doing integration testing for an API, then we are concerned about what parameters we pass to the API and what we get back, that is, the input and output. This creates loose coupling with the code. Here is a reminder of how integration testing and unit testing operate:
Figure 5.9 – Integration tests versus unit tests
As you can...