我这里有一个演示项目,https://github.com/donalthurley/pact-demo,它显示了我遇到的问题。
一般的问题是,我正在尝试开发一个API,该API符合契约契约,其中契约使用包含上下文的URL路径。
spring引导控制器API在路径中没有上下文的情况下映射请求(请参阅https://github.com/donalthurley/pact-demo/blob/master/src/main/java/com/example/demo/DemoController.java#L22 )
PACT契约指定相同的请求,并将上下文“演示”添加到URL路径(请参阅https://github.com/donalthurley/pact-demo/blob/master/src/main/resources/demo-pact.json#L14 )
当pact生成单元测试时,在这种情况下,它会通过404失败。
如果从PACT合同中删除上下文,则生成的测试将成功。
我的问题是,有什么方法可以让PACT生成使用“演示”上下文,这样生成的测试才能正常工作吗?
How to set the context path in Spring Boot WebMvcTest先前的回答表明这是不可能的,但我想确认这一点,因为我不明白为什么不应该支持这一点。
发布于 2019-03-14 08:22:52
在我看来,你不应该像你的控制器那样把上下文包括在协议中。
我想您正在使用一些API网关,所以一旦您离开API网关,所有处理上下文的操作都应该结束。在您的服务级别中,上下文已经无关紧要。
https://stackoverflow.com/questions/55117657
复制相似问题