Summary
We’ve covered a lot of ground in this chapter. We have used TDD to drive out the core application logic for our Wordz game. We have taken small steps and used triangulation to steadily drive more details into our code implementation. We have used hexagonal architecture to enable us to use FIRST unit tests, freeing us from cumbersome integration tests with their test environments. We have employed test doubles to replace difficult-to-control objects, such as the database and random number generation.
We built up a valuable suite of unit tests that are decoupled from specific implementations. This enabled us to refactor the code freely, ending up with a very nice software design, based on the SOLID principles, which will reduce maintenance efforts significantly.
We finished with a meaningful code coverage report that showed 100% of the lines of production code were executed by our tests, giving us a high degree of confidence in our work.
Next, in Chapter 14, Driving...