Now that I have my Ruby script working well enough to download mp3s from the website, I wanted to 'do it backwards' and add some tests. I spent numerous hours today researching the various test frameworks, unit-test, rspec, shoulda, etc.
BDD is when the developer first writes the test, has it fail and then writes and changes the actual code until the test passes. It takes more work to develop a program this way, but BDD has numerous benefits, including being able to re-run the test anytime a change is made to the program. If all the tests pass, one knows that everything is as good as it was before the changes were made. If failures, change and make new tests so that the actual code can be changed/created to fix the problem.