行为相同的多个步骤

尼古拉·洛西奇(NikolaLošić)

我有两个功能文件:

delete.feature
new_directory.feature

和两个步骤文件:

delete.py 
new_directory.py

每个功能文件的开始都是这样的:

Background:
  Given 'Workspace has the following structure'

遵循不同的表格。

当我写步骤文件装饰器时:

 @given('Workspace has the following structure') 

如何知道背景文件属于哪个特征?当我跑步时表现

new_directory.feature

我可以看到它从delete.feature运行该步骤。除了拥有唯一的步骤名称之外,还有什么方法可以使这些文件有所不同?

路易

我解决的共有步骤的解决方法是为该步骤使用单个实现,该实现根据使用该步骤的功能而有所不同。根据您的描述进行调整,它将类似于:

@given('Workspace has the following structure') 
def step_impl(context):
    feature = context.feature

    name = os.path.splitext(os.path.basename(feature.filename))[0]
    if name == "delete":
        # do something
        ...
    elif name == "new_directory":
        # do something else
        ...
    else:
        raise Exception("can't determine how to run this step")

上面的代码基于检查包含功能的文件的基本名称(减去扩展名)。您也可以检查实际的功能名称,但是我认为文件名称比功能名称更稳定,因此我更喜欢测试文件名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为相同命名的步骤创建多个实现(行为)

来自分类Dev

逗号分隔的一个值的步骤到多个具有相同值的步骤

来自分类Dev

多个信标具有相同ID时iBeacon检测的行为

来自分类Dev

多个信标具有相同ID时iBeacon检测的行为

来自分类Dev

Unity C#多个功能具有相同的行为?

来自分类Dev

多个线程执行相同的方法(非同步)行为

来自分类Dev

在步骤实施中跳过行为步骤

来自分类Dev

行为(BDD)模糊步骤错误

来自分类Dev

如果我必须将文本拆分为多个 div,我将如何使 text-align 的行为与对单个文本的行为相同

来自分类Dev

javascript新手:将相同的行为应用于多个元素的正确方法是什么?

来自分类Dev

连接在多个括号中的谓词是否与 and 运算符的行为相同?

来自分类Dev

功能“相同”的行为与因素

来自分类Dev

使用Pycharm调试python行为步骤

来自分类Dev

分多个步骤填写列表

来自分类Dev

SSIS并排运行多个步骤

来自分类Dev

使用多个步骤处理多个 Promise

来自分类Dev

多个对象,不同的行为

来自分类Dev

RabbitListener多个队列行为

来自分类Dev

多个请求的BlockingQueue行为

来自分类Dev

多个对象,不同的行为

来自分类Dev

多个行为空间

来自分类Dev

RabbitListener多个队列行为

来自分类Dev

CSS相同的类不同的行为

来自分类Dev

R:“相同”的惊人行为

来自分类Dev

Active Record分多个步骤创建查询

来自分类Dev

Laravel雄辩的拆分查询分多个步骤

来自分类Dev

处理多个输入到水壶步骤

来自分类Dev

具有多个DataTables的黄瓜步骤

来自分类Dev

PHP表单,包含多个步骤和验证