MockServer使用多个body匹配器进行验证



我使用MockServer主体匹配器来验证端点请求的主体参数。某些属性可以完全匹配,但其他属性可能需要单独的subString或regex匹配器,因为该属性的一部分是未知的。例如,日期-时间字符串可能具有已知日期,但具有未知时间。

但是,对于多个withBody()调用,如果一个或多个匹配器通过,则verify方法通过。如何实现逻辑AND而不是OR?

mockServer.verify(
request()
.withPath(url)
.withMethod("POST")
.withBody(
json(
"{"firstName": "foo","lastName": "bar"}",
MatchType.ONLY_MATCHING_FIELDS))
.withBody(
// Need subString because we don't know the time and only want to validate the date
subString(""order_date_time": "2021-04-15")));

要对多个主体匹配器条件执行逻辑AND,需要多次调用verify()方法:

private void verifyOrderPlaced() {
verifyName();
verifyOrderDate();
}
private void verifyName() {
mockServer.verify(
request()
.withPath(url)
.withMethod("POST")
.withBody(
json(
"{"firstName": "foo","lastName": "bar"}",
MatchType.ONLY_MATCHING_FIELDS)));
}
private void verifyOrderDate() {
mockServer.verify(
request()
.withPath(url)
.withMethod("POST")
.withBody(
subString(""order_date_time": "2021-04-15")));
}

最新更新