如何在不重复场景的情况下在黄瓜测试中编写功能?
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 作为起点。
【讨论】:
以上是关于如何在不重复场景的情况下在黄瓜测试中编写功能?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不知道维度的情况下在 C++ 中传递二维数组 [重复]