Python огурец BDD пакет: идиоматический c способ внедрить функциональность, которую вы хотели бы проверить - PullRequest
0 голосов
/ 14 апреля 2020

Я завершил учебные пособия для 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?

Спасибо.

1 Ответ

1 голос
/ 14 апреля 2020

Определения шагов не являются тестами. Огурцы ios - это тесты. Ничто не мешает вам написать сценарий ios без определений шагов.

Некоторые BDD фреймворки не пройдут тест с невыполненными шагами. Чтобы избежать этого, заглушайте каждый новый шаг таким образом, чтобы пометить тест как «ожидающий» или «неокончательный». Таким образом, сборки непрерывной интеграции будут продолжать проходить, пока вы реализуете инфраструктуру приложения для поддержки определений шагов.

...