Performing Integration Testing
In the previous chapters, we discussed the broader topic of writing and testing code with test-driven development (TDD), but have kept our implementation focus on unit tests. As we’ve discussed at length so far, unit tests are at the bottom of the test pyramid, being the most numerous, as they are testing all the different independent parts or units of the application.
The concepts we have discussed so far have allowed us to write unit tests that test these units in isolation, across a variety of scenarios. In Chapter 3, Mocking and Assertion Frameworks, we learned how to make use of frameworks to easily create mocks, which allow us to instantiate units whose dependencies we have full control over. As discussed in Chapter 4, Building Efficient Test Suites, we learned how to make use of the popular technique of table-driven testing to easily write tests across a variety of cases, including edge and corner cases.
No matter how well we write...