我使用MockServer来测试我的应用程序,我需要请求定义来匹配,只有在准确的头集匹配的情况下,即请求中没有缺少或额外的标头。
使用此Kotlin代码,它匹配至少包含指定的头的任何请求,因此,如果请求有其他标头,它也匹配它:
mockServer
.`when`(
request()
.withPath("/somePath")
.withHeaders(
Headers(
header("header1", "value1")
header("header2", "value2")
).withKeyMatchStyle(KeyMatchStyle.MATCHING_KEY)
)
)
.respond(
response()
.withContentType(MediaType.APPLICATION_JSON_UTF_8)
.withBody("OK")
)如果请求包含未指定的标头,是否有方法将MockServer配置为失败?在阅读了医生们之后,我没有找到如何做到这一点。
发布于 2022-04-26 19:14:00
我也试图解决同样的问题,并遇到了这个问题。
最简单的解决方案就是删除.withKeyMatchStyle(KeyMatchStyle.MATCHING_KEY)。
但你也可以写这样的东西:
mockServer.when(
request()
.withPath("/somePath")
.withHeader(NottableString.not("header1"), NottableString.string(".*"))
.withHeader(NottableString.not("header2"), NottableString.string(".*"))
.withHeaders(
Headers(
header("header1", "value1")
header("header2", "value2")
).withKeyMatchStyle(KeyMatchStyle.MATCHING_KEY)
)
)https://stackoverflow.com/questions/70113539
复制相似问题