Test-driven development
You might realize already that there is no unique way to do things when talking about developing an application. It is out of the scope of this book to show you all of them—and by the time you are done reading these lines, more techniques will have been incorporated already—but there is one approach that is very useful when it comes to writing good, testable code: test-driven development (TDD).
This methodology consists of writing the unit tests before writing the code itself. The idea, though, is not to write all the tests at once and then write the class or method but rather to do it in a progressive way. Let's consider an example to make it easier. Imagine that your Sale
class is yet to be implemented and the only thing we know is that we have to be able to add books. Rename your src/Domain/Sale.php
file to src/Domain/Sale2.php
or just delete it so that the application does not know about it.
Note
Is all this verbosity necessary?
You will note in this example that...