如何在不重复场景的情况下编写黄瓜测试功能?
How to write features on cucumber tests without duplicating scenarios?
我正在使用 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`
这里的问题是您的场景太笼统并且使用了太多技术术语,例如 "http status" 和 "rest service"。 None 的步骤使用业务语言来表达。
要么改写您的步骤以使用企业使用的相同语言,要么不使用 Cucumber。也许这些测试作为使用与 REST 服务相同的语言编写的普通单元测试样式测试会更好。
如果您想实践行为驱动开发,您需要学习基础知识。我建议阅读 BDD 101: Introducing BDD 作为起点。
我正在使用 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`
这里的问题是您的场景太笼统并且使用了太多技术术语,例如 "http status" 和 "rest service"。 None 的步骤使用业务语言来表达。
要么改写您的步骤以使用企业使用的相同语言,要么不使用 Cucumber。也许这些测试作为使用与 REST 服务相同的语言编写的普通单元测试样式测试会更好。
如果您想实践行为驱动开发,您需要学习基础知识。我建议阅读 BDD 101: Introducing BDD 作为起点。