Everywhere on the Internet you can find articles about “how to use junit” or “make your first unit test” but none about “Which approach to take to learn TDD”.
I think that following a tutorial that teaches you how to make a unit test without knowing when, where and how use it, it's the wrong approach. So I spent some time building a path, a road to follow.
This arguments/resources are in order, meaning that I found (maybe later at my own expenses) that learning about these topic in this order is the best approach I could take.
- Learn about Seams (not the Framework but the concept): If you have access to this book “Working Effectively with Legacy Code” by Micheal C. Feathers in a near library there is a good passage with an explanation about them. But I think you can easily find some info online.
- Learn about The Factory Patterns: You should know at least this two patterns to follow how the instantiation code need to be separated from the business code.
- Learn about Dependency Injection: This article is probably all you need to understand the concept (read all the linked resources too): http://martinfowler.com/articles/injection.html
- See some video about how to correctly structure your code: http://www.youtube.com/watch?feature=player_embedded&v=wEhu57pih5w http://www.youtube.com/watch?feature=player_embedded&v=RlfLCWKxHJ0 http://www.youtube.com/watch?feature=player_embedded&v=-FRm3VPhseI http://www.youtube.com/watch?feature=player_embedded&v=4F72VULWFvc All these videos can be found here: http://misko.hevery.com/presentations/
- First Unit Test?