Я делал TDD, и использовал его больше в качестве поблочного тестирования, чем управлять моим дизайном. Недавно я читал много о BDD; теперь, когда у меня есть лучшая идея о них обоих, я пытался выяснить, как использовать BDD и поблочное тестирование одновременно.
Например, я управлял бы своим дизайном с помощью BDD, стиля Dan North, и позволяю, говорят, что я работаю над приложением, и у меня есть простая спецификация, и я реализую его. У меня есть как раз достаточно bdd/spec для покрытия его. Теперь после того, как я осуществил рефакторинг его, и счастливо, и это передается, как сделано для той спецификации, я должен начать писать Модульные тесты для покрытия всех возможных исходных данных, потому что это - то, что я сделал в TDD?
Я - единственный разработчик в компании, и все находится на моих плечах, хотя другие команды действительно пробуют к тесту руководства приложение, я хотел бы понизить скорость дефектообразования.
Возьмите "The RSpec Book". В книге используются Cucumber и RSpec. Хотя это вполне может быть Cucumber & NUnit или что-то еще. Cucumber и BDD расширяют концепцию red, green, refactor на более глубокий уровень.
http://www.pragprog.com/titles/achbd/the-rspec-book
Cucumber: http://cukes.info/
RSpec: http://rspec.info/
NUnit: http://www.nunit.org/
JUnit: http://www.junit.org/
Согласен. Книга RSpec Book хорошо описывает подход к разработке "снаружи - внутри". Огурец (снаружи) помогает описать ожидаемое поведение (в терминах, понятных пользователю); а RSpec/*Unit (внутри) помогает описать поведение вашего класса.