一项测试中使用的存根和合同

问题描述

我对创建用于集成测试的合同(groovy 文件)非常陌生,我有一些问题。我有一个对端点的 3 次调用的集成测试 - 第一次调用是使用 url /abc/ab 服务 A,第二次调用是使用 url /xyz/xas 服务 B,第三次调用是服务 C。此刻调用被绊倒了。如果有对 abc/ab 的调用,则返回响应 X。如果有对 /xyz/xas 的调用,则返回响应 Y 等。我在服务 A 创建了一个合同(groovy 文件),我想在以下位置使用它我的测试。但是我没有服务 B 和 C 的合同,我想使用我已经拥有的存根。在我的设置类中,我有服务 B 和服务 C 的 stubDynamicMappings 和存根,但我的构建失败了。错误是当调用 /xyz/xas 时,它在我的合同中搜索并且没有匹配的请求(因为在合同中我正在等待请求带有 url /abc/ab) 请建议 :) 谢谢!

代码:我在服务 A 中的合同是:

*Contract.make {
  request {
  method ‘GET’
  url value(consumer(‘/abc/ab/002’),producer (‘/abc/ab/002’))*

.... 在服务 B 中,我使用以下代码进行集成测试:...

*verify (1,getRequestFor(urlPathMatching (“/abc/ab/002”);
 verify (1,postRequestFor(urlPathMatching (“/xyz/xas”);*

...也在服务 B 我有

 stubFor (“/xyz/xas”)

和使用我的合同的设置我的错误是:最相似的请求是:预期

POST /xyz/xas > 但是是

当我评论第二个验证语句时,一切正常。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)