Wiremock 使用SpringCloudContract测试前端到后端的交互
我想使用springcloudcontract()来测试前端到后端的交互:特别是捕捉Wiremock 使用SpringCloudContract测试前端到后端的交互,wiremock,spring-cloud-contract,Wiremock,Spring Cloud Contract,我想使用springcloudcontract()来测试前端到后端的交互:特别是捕捉400http错误等错误 我可以用SpringCloudContract存根管理器运行我的存根。但是我注意到,当实际后端返回400时,运行的存根返回404未找到错误 这是我的合同: description: | Signup use case ``` given: a user signs up when: the sign up request is
400
http错误等错误
我可以用SpringCloudContract存根管理器运行我的存根。但是我注意到,当实际后端返回400
时,运行的存根返回404
未找到错误
这是我的合同:
description: |
Signup use case
```
given:
a user signs up
when:
the sign up request is valid
then:
the user is signed up
```
request:
method: POST
url: /api/signup
body:
userAccountType: PARENTS
email: john@example.com
firstName: John
plainPassword: secret
address:
placeId: 'an_id'
description: '10 Downing Street'
headers:
Content-Type: application/json
response:
status: 200
如果我的前端(即Angular)只是发出一个HttpPOST
,比如说缺少email
字段,那么我希望运行的存根返回一个400
如果有人能分享最佳实践或技巧,以便更好地利用Spring Cloud Contract进行前端/后端测试,我将不胜感激。尽管我同意Marcin在评论中所说的
如果得到404,则意味着WireMock找不到存根。这意味着您的请求>与WireMock存根不匹配
您应该[为每个无效请求]创建另一个带有[a]缺失字段的合同,并>用状态代码400标记它 。。。也许有一种方法可以骗你一点 您可以为点击正确URL返回400的任何请求创建低优先级契约。就其本身而言,这意味着对该URL的每次调用都将返回400 然后使用正确的参数创建符合正确URL的合同,以返回200和预期响应,并将其优先级设置为高。由于这些合同重叠,优先级确保返回200而不是400 任何其他URL仍将返回404
免责声明:我自己并没有尝试过这个方法。尽管我同意Marcin在评论中所说的
如果得到404,则意味着WireMock找不到存根。这意味着您的请求>与WireMock存根不匹配
您应该[为每个无效请求]创建另一个带有[a]缺失字段的合同,并>用状态代码400标记它 。。。也许有一种方法可以骗你一点 您可以为点击正确URL返回400的任何请求创建低优先级契约。就其本身而言,这意味着对该URL的每次调用都将返回400 然后使用正确的参数创建符合正确URL的合同,以返回200和预期响应,并将其优先级设置为高。由于这些合同重叠,优先级确保返回200而不是400 任何其他URL仍将返回404
免责声明:我自己并没有真正尝试过这一点。如果您得到404,这意味着WireMock找不到存根。这意味着你的请求与WireMock存根不匹配。我明白了。但是,我如何确保我的消费者(这里是前端)不会向我的生产者API发送无效请求,从而导致
400
?我是否必须为每个无效请求组合编写合同(状态为400
)?您应该创建另一个带有缺失字段的合同,并将其标记为状态代码400,那么状态代码400合同将与无效请求组合一样多?如果这是您的业务要求,则是。使用groovy,您可以提取大部分设置并返回此类合同的列表,如果您得到404,这意味着WireMock找不到存根。这意味着你的请求与WireMock存根不匹配。我明白了。但是,我如何确保我的消费者(这里是前端)不会向我的生产者API发送无效请求,从而导致400
?我是否必须为每个无效请求组合编写合同(状态为400
)?您应该创建另一个带有缺失字段的合同,并将其标记为状态代码400,那么状态代码400合同将与无效请求组合一样多?如果这是您的业务要求,则是。使用groovy,您可以提取大部分设置并返回此类契约的列表