Недавно мы обновили зависимости теста интеграции REST, в котором используются Groovy, HTTPBuilder, JSONAssert и Junit. Когда мы перешли с HTTPBuilder 0.5.2 на 0.6, многие наши тесты провалились.
Мы обнаружили, что формат ответа изменился из-за новой «функции» в HTTPBuilder, которая обеспечивает «автоматический анализ ответов для зарегистрированных типов контента».
Старый, (0.5.2) формат, ожидаемый ответ:
[
{
"name":"Portfolio_REST_Test01",
"description":"",
"referenceValueType":"Net Value",
"unitType":"SHARES",
"tags":[]
}
]
Новый (0.6.2) формат ответа:
[{tags=[], referenceValueType=Net Value, unitType=SHARES, description=, name=Portfolio_REST_Test01}]
Проблема возникает, когда JSONAssert пытается проанализировать именованное значение, где значение представляет собой пустую строку, см. «Описание» в приведенных выше примерах. JSONAssert ожидает, что символ будет следовать знаку равенства, а не запятой, и при обнаружении выдает исключение.