我在我的开发组织中试行使用Cucumber进行功能/集成测试,并且已经使用Citrus和它为API测试提供的标准粘合剂。我遇到的障碍是如何动态更改给定方案的变量的REST URL。该功能似乎存在于Java DSL中,但未在Cucumber步骤中公开。我可以使用系统属性的占位符配置citrus-http:client,但显然需要在Spring加载应用程序上下文时解决这些问题。我希望能在我的背景消息定义做的是一样的东西:用柑橘/黄瓜进行REST API测试
Given message todoListRequest
And <todoListRequest> header Content-Type is "application/json"
And <todoListRequest> header Accept is "application/json"
And <todoListRequest> uri is "/todo/${item-number}"
,然后在一个场景:
Scenario: Gets expected item for specified item number
Given variables
| item-number | 3 |
When <todoListClient> sends message <todoListRequest>
Then <todoListClient> should receive message <todoListResponse>
服务主机名和端口仍然在配置应用程序上下文和附加到该值的构造的URI来创建该方法的目标(在这种情况下为GET,但我没有指定,也许这是其他需要添加的东西?)。这看起来合理吗?很明显,我可以为此编写自己的胶水,但我想看看是否有一个开箱即用的功能,用于在走这条路线之前似乎是一个非常明显的REST场景。我了解黄瓜整合相当新近(截至2.6?),因此它可能还在成熟。这是一个领域,我会乐于帮助,如果这是值得欢迎...
感谢
你是对的柑橘中的HTTP默认胶水代码应该在这里得到改善。事实上,如你所说,这仍然是一个成熟的领域。到目前为止,您需要在消息中设置Citrus内部头文件(citrus_http_method和citrus_http_request_uri)。如果你想在这里帮助提高可用性,非常欢迎! –