Jon showed me how to apply many of the concepts about unit testing to iOS. It was the one thing I needed in order to use it everywhere. Jon is one of the few who knows the stuff and knows how to explain it. My customers value my knowledge about testing and it is always a differentiating factor with my competitors. I owe a lot of it to Jon.
A robust suite of unit tests acts as a safety harness, giving you courage to make bold changes. But there’s an art to making tests that give you useful information, while keeping the tests themselves readable & maintainable.
Unit tests written after production code are hard to write, and may only confirm your biases. Test-Driven Development shapes production code in response to tests, in an evolutionary manner. The secret sauce? Continuous Refactoring.
We can’t just bang code together and expect it to be testable. Testability must be designed in. That design brings other benefits, making it easier to modify the code. The ultimate goal? Drive down your cost of change.