Как мне проверить большое целое число в testNG? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть следующая проверка в моем сценарии:

.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo("1514844812000"))

Я получаю следующую, очень запутанную ошибку:

java.lang.AssertionError: 1 expectation failed.
JSON path entity.segments[0].segmentEnds[0].publicNoticeDate doesn't match.
Expected: 1514844812000
  Actual: 1514844812000

Я думаю, вы сразу можете увидеть мое разочарование.Если я вычеркну кавычки:

.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo(1514844812000))

Тогда Eclipse скажет мне, что значение находится вне диапазона целого числа.

Я попытался заменить equalTo () с is () как с кавычками, так и без, и не дали удовлетворительного результата.

1 Ответ

0 голосов
/ 27 ноября 2018

Вот правдоподобное объяснение.

Я предполагаю, что entity.segments[0].segmentEnds[0].publicNoticeDate возвращает число (возможно, Long).Поэтому, когда вы делаете

.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo("1514844812000"))

Вы сравниваете Long со строкой.Проверка на равенство происходит через вызов метода «equals ()», и, поскольку они не равны, проверка не проходит.Но сообщение об ошибке сбивает вас с толку, потому что нет четкого способа показать, что вы ожидали строку "1514844812000", но вы вернули Long значение 1514844812000.

Чтобы это исправить, попробуйте изменить

.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo(1514844812000)

К .body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo(1514844812000L))

Обратите внимание, как я добавил «L» в конце числа, чтобы показать, что это длинное целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...