gpt4 book ai didi

pact - 如何定义单个字符串体的契约规范匹配规则?

转载 作者:行者123 更新时间:2023-12-02 15:40:53 27 4
gpt4 key购买 nike

我正在为上传文件的 put 请求设置测试。我的 pact 文件中的请求正文由单个字符串组成,其中包含每次测试运行都会更改的 mime 边界。我试图为请求正文字符串定义正则表达式匹配规则,但它不匹配。 header 内容类型的类似匹配规则确实匹配。

如果body只是一个字符串,该如何定义body的匹配规则?

我正在使用 Rust 中的 Pact 引用实现。 Pact-Specification 版本为 3。

"request": {
"headers": {
"Content-Length": "206",
"Host": "127.0.0.1:1234",
"Connection": "Close",
"Content-Type": "multipart/form-data; boundary=\"MIME_boundary_4FBA8D0826C707B6\""
},
"body": "--MIME_boundary_4FBA8D0826C707B6\r\nContent-Disposition: form-data; name=\"file\"; filename=\"test_file.txt\"\r\nContent-Type: application/octet-stream\r\n\r\nContent of test file.\r\n--MIME_boundary_4FBA8D0826C707B6--\r\n",
"matchingRules": {
"header": {
"$.Content-Type": {
"matchers": [
{
"match": "regex",
"regex": "multipart/form-data; boundary=\"MIME_boundary_[A-Z0-9]{16}\""
}
]
}
},
"body": {
"$": {
"matchers": [
{
"match": "regex",
"regex": "--MIME_boundary_[A-Z0-9]{16}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"test_file.txt\"\r\nContent-Type: application/octet-stream\r\n\r\nContent of test file.\r\n--MIME_boundary_[A-Z0-9]{16}--\r\n"
}
]
}
}
}
}

上面的代码是测试中使用的pact文件的一部分。测试结果出现 BodyMismatch 错误。比较预期和接收的主体表明它们仅在 mime 边界上有所不同,因此正则表达式匹配不起作用。

最佳答案

通过Pact的Slack channel 我们得到的答案是当前的Pact代码不支持这种类型的匹配。我们在 GitHub 上创建了一个功能请求问题: https://github.com/pact-foundation/pact-reference/issues/43

关于pact - 如何定义单个字符串体的契约规范匹配规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372629/

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