Я пытаюсь понять BDD. Я прочитал несколько статей и, как я понял, BDD - это «следующий шаг» от TDD. Я говорю это потому, что считаю, что оба они очень похожи, и, как я мог прочитать в этой статье , BDD родился как улучшение от TDD. Отлично, мне очень нравится идея.
Я подумал, что есть один практический момент: есть файл .feature, в котором БА запишет все ожидаемое поведение системы. Как бакалавр, он понятия не имеет, как строится система, поэтому мы напишем что-то вроде этого:
Сценарий 1: счет в кредит
Учитывая, что счет в кредит
И карта действительна
И диспенсер содержит деньги
Когда клиент просит наличные
Затем убедитесь, что счет списан И убедитесь, что деньги распределяются
И убедитесь, что карта возвращается
Хорошо, это замечательно, но есть много частей системы, которые будут сотрудничать, чтобы это могло произойти (подумайте об объекте Account, объекте Dispenser, объекте Customer и т. Д.). Для меня это выглядит как интеграционный тест.
Я хотел бы иметь модульные тесты. Как проверить код, который проверяет, есть ли у диспенсера деньги? Или что деньги выдаются? Или что счет списывается при необходимости? Как я могу смешать юнит-тесты с тестами "BA Created"?