问题描述
DslPart mySettingsDsl = PactDslJsonArray.arrayEachLike()
.eachKeyLike("sumne",PactDslJsonRootValue.stringMatcher("sumne|sid","sumne"))
.stringMatcher("sid","[a-zA-Z0-9]{1,10}")
.object("sumne",new PactDslJsonBody()
.stringType(FOOTER,"footer")
.stringType(HEADER,"header")
.stringMatcher(MIDDLE,"\\d{7}")
.stringMatcher(END,"\\d{3}")
.asBody()
).close();
return builder
.uponReceiving("Some Description")
.matchPath("/v1/" + UUID_REGEX + "/customization")
.method(GET.name())
.willRespondWith()
.status(200)
.matchHeader(CONTENT_TYPE,APPLICATION_JSON.getMimeType())
.body(new PactDslJsonBody()
.stringType(STATUS,"ok")
.object(DATA,new PactDslJsonBody()
.stringMatcher(CODE,"\\d{14}")
.stringMatcher(APP_NO,"\\d{5}")
.stringType(PROD_NAME,"product1")
.object(MY_SETTINGS,mySettingsDsl)
.asBody())
.asBody())
.toPact();
{
"provider": {
"name": "provider"
},"consumer": {
"name": "consumer"
},"interactions": [
{
"description": "Some Description","request": {
"method": "GET","path": "/v1/C2D0B4D3-0Bdc-5CDa-2ffF-E8fEb0c9fE1B/customization","matchingRules": {
"path": {
"matchers": [
{
"match": "regex","regex": "/v1/[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}/customization"
}
],"combine": "AND"
}
}
},"response": {
"status": 200,"headers": {
"Content-Type": "application/json"
},"body": {
"data": {
"code": "84502366577143","appNo": "76703","mySettings": [
{
"sumne": {
"footer": "footer","header": "header","middle": "8230126","end": "916"
},"sid": "EfL6wZ"
}
],"prodName": "product1"
},"status": "ok"
},"matchingRules": {
"header": {
"Content-Type": {
"matchers": [
{
"match": "regex","regex": "application/json"
}
],"combine": "AND"
}
},"body": {
"$.status": {
"matchers": [
{
"match": "type"
}
],"combine": "AND"
},"$.data.code": {
"matchers": [
{
"match": "regex","regex": "\\d{14}"
}
],"$.data.appNo": {
"matchers": [
{
"match": "regex","regex": "\\d{5}"
}
],"$.data.prodName": {
"matchers": [
{
"match": "type"
}
],"$.data.mySettings": {
"matchers": [
{
"match": "type","min": 0
}
],"$.data.mySettings[*].*": {
"matchers": [
{
"match": "regex","regex": "sumne|sid"
}
],"$.data.mySettings[*].sid": {
"matchers": [
{
"match": "regex","regex": "[a-zA-Z0-9]{1,10}"
}
],"$.data.mySettings[*].sumne.footer": {
"matchers": [
{
"match": "type"
}
],"$.data.mySettings[*].sumne.header": {
"matchers": [
{
"match": "type"
}
],"$.data.mySettings[*].sumne.middle": {
"matchers": [
{
"match": "regex","regex": "\\d{7}"
}
],"$.data.mySettings[*].sumne.end": {
"matchers": [
{
"match": "regex","regex": "\\d{3}"
}
],"combine": "AND"
}
}
},"generators": {
"body": {
"$.data.code": {
"type": "Regex","regex": "\\d{14}"
},"$.data.appNo": {
"type": "Regex","regex": "\\d{5}"
},"$.data[*].sid": {
"type": "Regex",10}"
},"$.data[*].sumne.middle": {
"type": "Regex","regex": "\\d{7}"
},"$.data[*].sumne.end": {
"type": "Regex","regex": "\\d{3}"
}
}
}
}
}
],"Metadata": {
"pactSpecification": {
"version": "3.0.0"
},"pact-jvm": {
"version": "4.1.13"
}
}
}
但是当使用 mvn pact:publish
推送到 Pact broker 时,我只能在 pactbroker 中看到其中的一部分。
{
"status": 200,"headers": {
"Content-Type": "application/json"
},"body": {
"data": {
"code": "84502366577143","mySettings": [
],"prodName": "product1"
},"status": "ok"
}
}
mySettings 数组在我在 pactbroker 上看到的 pact 文件中完全为空。这可能是什么问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)