命名Cucumber的数据表

时间:2017-05-09 09:17:40

标签: automated-tests cucumber bdd python-behave

我正在表单上创建测试用例,这些表单可能包含超过50个参数,其中一些参数会在特定回答某些问题时出现。

数据表变得非常长,所以我将它们分成多个数据表,每个数据表都用于表单的特定部分。

我不想在步骤中添加每个标题,所以我想使用数据表的名称。

而不是:

Scenario:
.
.
.
When I fill in <title> <first name> <surname> ...
   |title|first name|surname|...|
   .
   .
   .

我想:

When I fill in <personal details>
And "personal details":
   |title|first name|surname|...|
   .
   .
   .

是否可以添加和使用数据表的名称作为占位符?

注意:我正在使用Behave和Python。

3 个答案:

答案 0 :(得分:0)

我不确定你在问什么,但如果你在不同的场景中使用相同的细节,那么最好使用Cucumber的Background选项。这样在执行每个场景之前都会检查它。

答案 1 :(得分:0)

使用&lt;&gt;绝对不可能语法。

如果你没有很多行,而你的主要关注点是非常宽的表格的可读性,那么一个选项可能是&#34;转置&#34;像这样的表:

When I fill in the personal details
    | Field    | Value    |
    | Title    | Prof.    |
    | Surname  | Einstein |
    | ...      |          |

另一个选项可能是在Background中定义重复出现的属性集,如下所示:

Background:
    Given the personal details for 'minimal personal details'
        | Surname | First name | 
        | Doe     | John       |

    And the personal details for 'insufficient personal details'
        | First name |
        | Jack       |

    And the personal details for 'all personal details'
        ...

    ...

    When I fill in personal details using 'insufficient personal details'

背景的绑定在上下文中注册他们的数据,并且&#39;当&#39;绑定使用来自上下文的数据。

在任何一种情况下,您都需要一个能够容忍缺失属性并捕获未知属性的绑定。

答案 2 :(得分:0)

Gherkin中的表是真实数据的视图(意味着列的子集和感兴趣的行)。出于可读性原因(并且有人了解您正在做什么),您应该最多有7个(加/减2)列。也许,剩余的数据可以从配置文件或配置文件数据库中注入?!?您基本上使用提供的表列作为键来选择配置行并从配置配置文件中检索剩余数据。