Behavior driven development:
It
Learning ruby through testing it feature by feature – nice idea. Not only do you have a quick reference of everything you’ve ever learned, but if something in the library changes, you’ll know about it quickly.
We have no idea if Ruby did what it should have done: we just know what it did. That is, we used the language as a tool to explore itself. In the same way that a test is better than a specification, the language is better than a description of the language. The test is definitive—when we ask Ruby what the answer to ‘Hello! ’ * 3 is, we’re going to the horse’s mouth. It doesn’t matter what the documentation says; what we’re testing is what actually happens. And that’s learning. So the test is both a learning test and a regression test.
Kent Beck
A real clear look at what TDD is, and how to go about using it in writing your own software.