【发布时间】:2020-04-14 13:43:26
【问题描述】:
我已经在 Udemy Here 上完成了使用 Python Cucumber 进行 BDD 的教程。
但是,在这些课程中,导师使用已实现的功能来实现步骤定义。对我来说,这违背了 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")()
写完所有测试后,我可以编写doMyThing() 的逻辑,然后简单地编辑Config.py 文件,即:
From CoreLogic import CoreLogic
myFunctionality = {
"doMyThing" : lambda : CoreLogic.doMyThing()
}
这意味着我可以对我的原型和最终实现使用相同的 Cucumber 测试集。我所要做的就是编辑配置文件。
这是解决这个问题的好方法吗?当然这是一个非常常见的用例,那么人们通常如何将他们想要测试的功能注入到 Cucumber 中?
谢谢。
【问题讨论】:
标签: python python-3.x cucumber bdd gherkin