


TDD (Test-Driven Development) is a good way to end up with a testable code naturally, by default.
There are mainly 2 TDD schools/approaches well established today:
There are mainly 2 TDD schools/approaches well established today:


A good way to get started with this approach is the "Test Driven Development by Example" book
https://i.mgtbk.nl/boeken/9780321146533-920x960.jpg
https://i.mgtbk.nl/boeken/9780321146533-920x960.jpg



A good way to get started with this approach is the "Growing Object-Oriented Software Guided by Tests" (aka the GOOS) book
https://images-na.ssl-images-amazon.com/images/I/51fUKOog3VL._AC_SY400_.jpg
https://images-na.ssl-images-amazon.com/images/I/51fUKOog3VL._AC_SY400_.jpg

I've recorded screencasts series where I demonstrate the both approaches on a real feature (I work on a search functionality), so that we can look and compare many aspects on these 2 TDD styles


https://youtube.com/playlist?list=PLqew6vQ7CzHJ6YC8HUx3k1VINanVr56_d
This series is completed and ready.


https://youtube.com/playlist?list=PLqew6vQ7CzHIUNy7VjCG8-N0Z2xjT7qrr
This series is not complete, but almost done.


Enjoy!