Really enjoyed making my way through Dominik Hauser's Test-Driven iOS Development with Swift, a soup-to-nuts guided walkthrough of test-driven development of a simple todo app (hence the name "ToDoDo", geddit?). All aspects of the app were developed in a test-driven way, including:
- TDD of a data model, including serialization and deserialization
- Writing tests for a view controller, including using fake objects to isolate micro-features for the test
- Testing networking code, including using stubs to fake a server component before it is developed and testing of asynchronous code paths
- Functional/UI testing, including utilizing Xcode's "Record UI Test" functionality
- Enabling and inspecting code coverage