作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望我的 Pact 服务器在使用 header Content-Type: application/x-www-form-urlencoded
进行 POST 调用时返回自定义响应。
然而,POST 调用的主体并不总是相同的,只有前缀保持不变。
例如,无论我使用 body
input_text=LOGSomeStuffHERE
调用它,还是使用 input_text=LOGAnoutherStuff
(如你看,input_text=LOG
是常量部分)这是我尝试过的:
.uponReceiving("POST cusom body")
.path("/path")
.method("POST")
.headers(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.body("input_text=LOG*")
.willRespondWith()
.status(200)
...
PactDsl 是否支持请求部分的某种正文匹配?
最佳答案
您可以match using a Regex来验证你的 body 。 DSL 中的 body
本身是应该为交互返回的实际主体(带有虚假数据),而无需实际添加额外的匹配器。如果你想要 example of this, look at the test code for the jvm consumer .
就您而言,您会这样做:
.uponReceiving("POST cusom body")
.path("/path")
.method("POST")
.headers(HttpHeaders.CONTENT_TYPE,
ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.body(PactDslJsonRootValue.stringMatcher("^input_text\=LOG.*",
"input_text=LOG_something"))
.willRespondWith()
.status(200)
第一个参数是正则表达式的字符串表示形式,第二个参数是实际传递给交互的字符串,需要通过正则表达式测试。
关于java - 在 pactdsl 请求正文中使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49449233/
我希望我的 Pact 服务器在使用 header Content-Type: application/x-www-form-urlencoded 进行 POST 调用时返回自定义响应。 然而,POST
我是一名优秀的程序员,十分优秀!