gpt4 book ai didi

java - 在 pactdsl 请求正文中使用正则表达式

转载 作者:行者123 更新时间:2023-12-02 11:28:33 26 4
gpt4 key购买 nike

我希望我的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com