BDD и модульное тестирование

Я занимался TDD и использовал его больше для модульного тестирования, чем для управления своим дизайном. В последнее время я много читал о BDD; теперь, когда у меня есть лучшее представление о них обоих, я пытался понять, как использовать BDD и модульное тестирование одновременно.

Например, я бы управлял своим дизайном, используя BDD, стиль Дэна Норта, и допустим, я работаю над приложением, и у меня есть простая спецификация, и я ее реализую. У меня достаточно bdd/spec, чтобы покрыть это. Теперь, после того, как я провел рефакторинг и доволен, и все было принято для этой спецификации, должен ли я начать писать модульные тесты для охвата всех возможных входных данных, потому что это то, что я сделал в TDD?

Я единственный разработчик в компании, и все на моих плечах, хотя другая команда пытается вручную протестировать приложение, я хотел бы снизить процент брака.


person Jamie    schedule 24.02.2010    source источник
comment
Итак, можем ли мы увидеть фактический ответ на вопрос Должен ли я начать писать модульные тесты для охвата всех возможных входных данных, потому что это то, что я сделал в TDD? У меня серьезно тот же вопрос, и я не думаю, что ссылка на книгу (даже если она ооочень крутая) достаточно хороша, чтобы ее принять.   -  person jibiel    schedule 17.11.2011
comment
jibie Ваше право, я добавил ответ сам. хоть и поздно!   -  person Jamie    schedule 19.04.2013


Ответы (2)



Я согласен. Книга RSpec Book неплохо описывает подход к разработке "снаружи - внутри". Огурец (внешний) помогает описать ожидаемое поведение (в терминах, понятных пользователю); а RSpec/*Unit (внутри) помогает описать поведение вашего класса.

person Jon Kern    schedule 30.08.2010
comment
Outside-in начинается со сценариев в Cucumber, но затем идея состоит в том, что вы работаете с пользовательскими интерфейсами внутрь через контроллеры, репозитории, сервисы и т. д., пока ваш сценарий не пройдет. Вы никогда не пишете код, который не нужен классу ближе к пользовательскому интерфейсу (пользователями могут быть другие системы). Даже на уровне класса мы сначала проводим внешние занятия. - person Lunivore; 05.01.2011