Hamcrest содержит Matcher - PullRequest
0 голосов
/ 27 апреля 2018

Итак, моя проблема - это сопоставление типов:

У меня есть код, который запрашивает базу данных и возвращает массив строкового типа. Когда я пытаюсь выполнить проверку по моему сообщению JSON, возвращенному из веб-службы, одно из значений представляет собой примитивное целое число (без двойных кавычек), и проверка завершается неудачей, поскольку она заявляет: Ожидается: итерируемый, содержащий {"1", "1", "1", "1", "1"} Факт: [1, 1, 1, 1, 1] Я использую содержит matcher для проверки ListArray значений по многим, возвращенным запросом. Я предполагаю, что Actual оценивается как целое число, но значения для проверки ( Ожидаемый ) являются String. Я ломал голову, пытаясь HasToString или hasItem matchers, но я думаю, что это будет просто синтаксический анализ toString, если целью является единственное значение. Думаю, мой последний вопрос: есть ли способ заставить Hamcrest оценивать данные JSON как String или неявно / явно приводить Ожидаемый оцениваемый тип? Заранее спасибо.

1 Ответ

0 голосов
/ 04 мая 2018

Итак, мне кажется, я понял это; в итоге я выполнил toString (). для извлеченного ArrayList объектов, который дал мне строковые значения; Пример кода ниже:

ArrayList<String> myObj = response.path(jsonField);
String[] myObjStr = new String[myObj.size()];
int x = 0;
        for (Object obj : myObj){
            myObjStr[x] = obj.toString();
            x++;
        }

Оттуда я смог сравнить полученные массивы; Теперь если бы я только мог понять, как избавиться от надоедливых угловых скобок для вложенных элементов ...

...