Пишу АПИ тест, описал класс ошибок
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Message {
private String email;
private String password;
}
в респонсе приходит только одно поле в зависимости от моделируемой ситуации. Соответственно при ассерте нужно понимать какое поле вытягивать. Если писать под каждую ситуацию тест это долго т.к. поля будут пополнятся. я данные на вход я подаю из файла. Например подаю ему на вход логин, неправильный пароль, и мессаг который должен быть в такой ситуации.
{
"success": false,
"error": {
"message": {
"email": "Значение «Электронная почта» не является правильным email адресом."
}
}
}
И сравниваю
assertTrue(actualAnswer.getError().getMessage().getEmail().equals(errMessage));
но при следующей комбинации данных уже прийдет емейл и пример меседжа на неправильный емейл соответственно и асерт нужен другой.
{
"success": false,
"error": {
"message": {
"password": "Пароль слишком слабый или содержит недопустимые символы! Разрешено использовать цифры верхний и нижний регистр букв латинского алфавита."
}
}
}
Пробовал if но все-равно java.lang.NullPointerException т.к. ищет имейл. Подскажите как написать универсальный ассерт.
Вы можете добавить в свой проект groovy класс со следующем методом
@SuppressWarnings("GrUnresolvedAccess")
static Map getChildMessage() {
def object = new JsonSlurper().parseText(sGetJson())
return object.error.message as Map
}
где sGetJson() - функция возвращающая ваш json (String)
Для добавления groovy класса, если у вас maven проект, добавьте в pom.xml в dependencies:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.15</version>
</dependency>
Соответственно получить тип сообщения с ошибкой можно так:
getChildMessage().keySet()[0]
а получить текст сообщения ошибки можно так:
getChildMessage().values().getAt(0)
Надеюсь вам это поможет.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Начал изучать javaПолучил такое задание "Найти сумму всех четных и сумму нечетных элементов массива"
привет всем у меня такая проблема, пишу свой первый проект на java (Spring Boot), а именно пишу магазин одежды и мне надо чтобы в графике показывало...
Как получить XML-строку, если она сгенерирована в Document? Требуется именно String, а не вывод в файл