我是否可以配置Spring Cloud Contract Pact测试生成来处理URL路径中的上下文

问题描述 投票:0回答:1

我在这里有一个演示项目https://github.com/donalthurley/pact-demo,它显示了我遇到的问题。

一般问题是我正在尝试开发符合PACT合同的API,其中合同使用包含上下文的URL路径。

spring boot controller API在没有路径中的上下文的情况下映射请求,请参阅https://github.com/donalthurley/pact-demo/blob/master/src/main/java/com/example/demo/DemoController.java#L22

PACT合约指定相同的请求,并在URL路径前加上上下文'demo',请参阅https://github.com/donalthurley/pact-demo/blob/master/src/main/resources/demo-pact.json#L14

当pact生成单元测试时,它在这种情况下失败了404。

如果从PACT合同中删除上下文,则生成的测试成功。

我的问题是,有什么方法可以告诉PACT生成使用'demo'上下文,以便生成的测试可以工作吗?

这个早期的答案How to set the context path in Spring Boot WebMvcTest会建议这是不可能的,但我想确认一下,因为我不明白为什么不应该支持这个。

spring rest-assured pact spring-cloud-contract
1个回答
1
投票

在我看来,你不应该在协议中包含上下文,就像你的控制器一样。 我猜你正在使用一些API网关,所以一旦你离开API网关,所有处理上下文都应该结束。在您的服务级别,上下文已经无关紧要。

© www.soinside.com 2019 - 2024. All rights reserved.