Хотя я не был в проекте TDD или BDD, или я был в некоторых, которые говорят, что они делают TDD, но довольно далеки от этого, это вещи, о которых я думаю и действительно пытаюсь прочитать столько, сколько я могу около.
Вернуться к вопросу. Когда вы делаете BDD, вы должны сначала написать «тест» и заставить его провалиться, верно? А затем реализуйте эту функцию или как вы ее называете. Но если вы доведите это до крайности, разве это не может быть какой-то нисходящей разработкой? Вы смотрите на свой пользовательский интерфейс и говорите: «Я хотел бы иметь эту функцию / поведение здесь». Затем вы исправляете свой пользовательский интерфейс для реализации этой функции и кода, который поддерживает пользовательский интерфейс. На данный момент вы не реализовали никакой бизнес-логики или логики доступа к данным, вы только что реализовали свое поведение. То, к чему я стремлюсь, вместо того, чтобы сначала писать тест, вы сначала пишете свой код пользовательского интерфейса. В некоторых случаях это должно приводить к одному и тому же коду для доступа к данным и бизнес-уровня, поскольку вы используете свой код пользовательского интерфейса для определения того, что должен поддерживать ваш бизнес.
Конечно, вы должны дополнить это тестами, которые используются, чтобы убедиться, что функция работает так, как должна работать в ней.
есть идеи?
main
. В своем нисходящем комментарии вы говорите о функциональных тестах, которые выполняют всю программу, хотя бы одинmain
.