Я завершил учебные пособия для BDD с Python Огурцом на Удеми Здесь .
Однако в этих уроках преподаватель реализует определения шагов с функциональностью, которая уже был реализован. Для меня это побеждает цель BDD. Я хочу написать тесты до того, как напишу код, который должен выполнить тесты.
Я попытался сделать это, используя конфигурационный файл, то есть в Config.py
:
myFunctionality = {
"doMyThing" : lambda : assert(false)
}
А затем в файле реализации шага:
from Config import Config
@when('We request to do my thing')
def step_impl(context):
context.result = Config.myFunctionality.get("doMyThing")()
Как только я напишу все свои тесты, я могу написать логи c для doMyThing()
, а затем просто отредактировать Config.py
file, то есть:
From CoreLogic import CoreLogic
myFunctionality = {
"doMyThing" : lambda : CoreLogic.doMyThing()
}
Это означает, что я могу использовать один и тот же набор тестов Cucumber для моего прототипа и моей окончательной реализации. Все, что мне нужно сделать, это отредактировать файл конфигурации.
Это хороший способ go по этому поводу? Конечно, это очень распространенный вариант использования, так как люди обычно внедряют функциональность, которую они хотели бы протестировать, в Cucumber?
Спасибо.