[英]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.