0

在为我们的简单 REST API 编写合约测试时,我注意到我无法表达一个资源返回我的实体的列表/数组和一个只返回一个实体实例的资源之间的区别。

response { // (6)
    [..]
    body([[
                  id               : $(regex('.*')),
                  title            : $('Title1'),
          ], [
                  id               : $(regex('.*')),
                  title            : $('Title2'),
          ]
    ])
    headers {// (9)
        contentType('application/json')
    }
}

我在哪里测试资源,返回一个条目:

response { // (6)
    [..]
    body([
            id: $(regex('.*')),
            title: $(producer(regex('.*')), consumer('Der Titel1'))
    ]
    )
    headers {// (9)
        contentType('application/json')
    }
}

问题是,较低的规范也完美地验证了返回我的实体列表的实际资源..

我该如何表达两者之间的区别?

4

1 回答 1

0

我想您应该使用该testMatchers部分来提供一个明确的 JSON 路径,该路径将以您希望的方式验证您的案例,或者提供byTypechcek 以检查您是否有一个列表或地图(http://cloud.spring. io/spring-cloud-static/spring-cloud-contract/1.0.4.RELEASE/#_dynamic_properties_in_matchers_sections)。

于 2017-04-28T12:17:42.957 回答