Pact jvm-使用regex验证数组内的字符串值



我有这样的数组结构:

{
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]

关于:

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

请参阅https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-consumer-junit#dsl-匹配方法

最新更新