У меня есть следующий ответ:
[
{
"id": 53,
"fileUri": "abc",
"filename": "abc.jpg",
"fileSizeBytes": 578466,
"createdDate": "2018-10-15",
"updatedDate": "2018-10-15"
},
{
"id": 54,
"fileUri": "xyz",
"filename": "xyz.pdf",
"fileSizeBytes": 88170994,
"createdDate": "2018-10-15",
"updatedDate": "2018-10-15"
}
]
, и я пытаюсь сопоставить значение id
с объектом в JUnit следующим образом:
RestAssured.given() //
.expect() //
.statusCode(HttpStatus.SC_OK) //
.when() //
.get(String.format("%s/%s/file", URL_BASE, id)) //
.then() //
.log().all() //
.body("", hasSize(2)) //
.body("id", hasItems(file1.getId(), file2.getId()));
Но когда совпадениепроисходит, он пытается сопоставить int
с long
.Вместо этого я получаю следующий вывод:
java.lang.AssertionError: 1 expectation failed.
JSON path id doesn't match.
Expected: (a collection containing <53L> and a collection containing <54L>)
Actual: [53, 54]
Как можно сказать «Успокойся», что значение действительно длинное, даже если оно может быть достаточно коротким, чтобы поместиться в int?Я могу привести id
файла к int
, и это работает, но это кажется небрежным.