如何在不重复场景的情况下在黄瓜测试中编写功能?

Posted

技术标签:

【中文标题】如何在不重复场景的情况下在黄瓜测试中编写功能?【英文标题】:How to write features on cucumber tests without duplicating scenarios? 【发布时间】:2020-03-04 09:28:16 【问题描述】:

我正在使用 cucumber (https://cucumber.io) 进行 bdd 测试,并希望使用两个 rest 服务测试一个功能。

如何编写这个包含 x 个场景的功能文件,而不为每个休息服务的功能文件复制每个场景?

通常,我的功能文件以背景(即要使用的休息服务)开头,然后是该功能支持的每个场景(参见示例)。我希望能够以不同的背景运行文件中的每个场景...

例子:

Background:
Given a rest service `<some rest service>`

Scenario: should perform x
When performing `x`
Then `y`

Scenario: should feil with z
When performing `z`
Then http status should be `400`

【问题讨论】:

【参考方案1】:

这里的问题是你的场景太笼统了,使用了太多的技术术语,比如“http status”和“rest service”。所有步骤均未使用商业语言进行表述。

要么改写您的步骤以使用企业使用的相同语言,要么不使用 Cucumber。也许这些测试最好是使用与编写 REST 服务相同的语言编写的普通单元测试风格的测试。

如果您想实践行为驱动开发,您需要学习基础知识。我推荐阅读BDD 101: Introducing BDD 作为起点。

【讨论】:

以上是关于如何在不重复场景的情况下在黄瓜测试中编写功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不选择文本的情况下在 Xcode 中剪切一行?

如何在不重新加载的情况下在同一页面上提交文件[重复]

如何在不知道维度的情况下在 C++ 中传递二维数组 [重复]

如何在不使用转储的情况下在 python 中编写 json 文件

如何在不换行的情况下在引导列之间添加边距[重复]

如何在不使用 &nbsp 的情况下在行内元素之间添加空格 [重复]