[英]Junit assertThat compare JsonObject
我是 junit 的初学者我想用动态数据测试两个 JsonObject,尤其是日期。
我有一个属性“CreationDate”,在第一个 json 我使用 localDateTime“now()”另一方面,jsonTest 文件包含一个文字日期。
JsonObject actual = (JsonObject) parser.parse(myListResponse.readEntity(String.class));
JsonObject expected = (JsonObject) parser.parse(fixture("path/jsonTest.json"));
assertThat(actual , is(expected));
我如何解决这个问题以获得有效的测试
您必须通过扩展 BaseMatcher 来创建自定义 Matcher。 然后,您可以使用所需的字段进行比较/匹配。 例如:
static class JsonObjectMatcher extends BaseMatcher<JsonObject> {
private final JsonObject target;
public static JsonObjectMatcher customMatchesTheJson(final JsonObject expected) {
return new JsonObjectMatcher(expected);
}
private JsonObjectMatcher(JsonObject target) {
this.target = target;
}
@Override
public boolean matches(Object o) {
if (o instanceof JsonObject) {
final JsonObject other = (JsonObject) o;
// TODO: 5/11/21 Custom compare target to other
}
return false;
}
@Override
public void describeTo(Description description) {
// TODO: 5/11/21 Add to the description
}
}
您可以使用它来匹配如下:
assertThat(actual, JsonObjectMatcher.customMatchesTheJson(expected));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.