Catching up with the latest RailsCast, I came across the following comment:
At first, this comment seems valid, as Cucumber is pretty wordy. And if you already know your requirements, why would you write it down? Of course. It is all so simple.
TDD is great. I’m a huge proponent. But TDD alone doesn’t get me in the right mindset. What I need is BDD. I need to describe the behavior rather than just write tests. As you see, it is all semantics. In my honest opinion, if you are doing it right, TDD == BDD. When you try to extract the differences, I feel like you are grasping for straws and not trying to achieve the real goal — Describing your code through defined behaviors.
So call it BDD or call it TDD. Just make sure you doing it first, and make sure you are defining contexts, and make sure you are actually describing behavior rather than code.