Chapter 4: The App We Are Going to Build
In the previous chapters, you learned how to write unit tests and saw an easy example of test-driven development (TDD). When starting TDD, writing unit tests is easy for most people. The hard part is transferring knowledge from writing tests to driving development. What can be assumed? What should be done before we write the first test? What should be tested to end up with a complete app?
As a developer, you are used to thinking in terms of code. When you see a feature on the requirement list for an app, your brain already starts to lay out the code for this feature. For recurring problems in iOS development (such as building table views), you most probably have already developed your own best practices.
In TDD, you should not think about the code while working on the test. The tests have to describe what the unit under test should do and not how it should do it. It should be possible to change the implementation without breaking the tests...