Чтобы поместить это в контекст. Мне нравится TDD. Сначала я люблю писать свои тесты и выражать то, что мне нужно, чтобы мой код делал, используя assertEquals, assertTrue и т. Д.
Но все, кажется, получают удовольствие от программы BDD. Я вижу много разговоров о rSpec и огурцах и салате. Когда я смотрю на них, они выглядят слишком многословно, почти как Кобол в их наивном предположении, что каким-то образом написание длинного «псевдоанглийского» делает формальные спецификации разборчивыми для непрофессионала.
В некоторых публикациях о BDD звучит так, как будто это для людей, которым TDD слишком сложно сделать на практике. Я не чувствую, что у меня есть эта проблема. Или, по крайней мере, там, где я был, это было из-за проблем с выполнением TDD для баз данных или в интерактивных средах, а не потому, что я не мог сформулировать или расставить приоритеты в своих тестах.
Так что мой вопрос таков. Какое значение имеет BDD для меня как для программиста? а) В контексте проектов я пишу для себя (или с другими программистами). б) в контексте работы с нетехническими заказчиками.
Для людей, которые использовали BDD для ряда проектов, что он купил вам сверх TDD?
Вы находите клиентов, менеджеров по продукту или проектам, которые могут писать достаточно жесткие тестовые примеры в BDD, но не могут писать их как обычные тесты?