如何在不重复场景的情况下编写cucumber测试的特性?

如何在不重复场景的情况下编写cucumber测试的特性?,cucumber,Cucumber,我正在使用cucumber()进行bdd测试,并希望使用两个rest服务测试一个特性 如何编写此包含x个场景的功能文件,而不为每个rest服务的功能文件复制每个场景 通常,我的功能文件从后台开始(即rest服务要使用的内容),然后是该功能支持的每个场景(参见示例)。我希望能够在不同的背景下运行文件中的每个场景 例如: Background: Given a rest service `<some rest service>` Scenario: should perform x W

我正在使用cucumber()进行bdd测试,并希望使用两个rest服务测试一个特性

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

通常,我的功能文件从后台开始(即rest服务要使用的内容),然后是该功能支持的每个场景(参见示例)。我希望能够在不同的背景下运行文件中的每个场景

例如:

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`
背景:
休息``
场景:应该执行x
在表演'x'时`
然后是“y”`
场景:应该与z一起飞行
在表演'z'时`
那么http状态应该是'400'`

这里的问题是,您的场景过于通用,使用了太多的技术术语,如“http状态”和“rest服务”。没有一个步骤是使用业务语言编写的

要么重新表述您的步骤,使用业务部门使用的相同语言,要么不使用cucumber。也许这些测试最好是使用与REST服务相同的语言编写的简单单元测试样式的测试

如果你想实践行为驱动的开发,你需要学习基础知识。我建议从阅读开始