Pact-jvm-使用正则表达式验证数组内的字符串值

时间:2018-11-28 17:06:57

标签: java pact contract pact-jvm

我有这个数组结构:

{
Array1 : ["A","B","C"],
Array2: ["D","E","F"] 
}

我像这样被验证了

array("array1")
 .string("A")
 .string("B")
 .string("C")
.closeArray()
array("array2")
 .string("D")
 .string("E")
 .string("F")
.closeArray()

但是我的问题是,有时提供程序不会以相同的顺序返回数组中的元素,所以,我的问题是:验证它的最佳方法是什么? 考虑到它将始终返回一个由4个元素组成的数组,但其字符串值的顺序不一致。 我也尝试过这种方式:

.minArrayLike("array1", 1, PactDslJsonRootValue.stringMatcher("A|B|C", "A"))
.minArrayLike("array2", 1, PactDslJsonRootValue.stringMatcher("D|E|F", "D"))

但是契约产生了像这样的合同:

array1 : [A,A,A],
array2: [D,D,D]

1 个答案:

答案 0 :(得分:0)

那又怎么样:

PactDslJsonArray.arrayEachLike()
    .stringType("A")
    .closeObject()

请参见https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-consumer-junit#dsl-matching-methods