Почему при выполнении одной проверки тест пройден, а другой выдаёт ошибку org.opentest4j.AssertionFailedError: expected: but was:
1. Когда я перебираю список avatars с ids - тест считается пройденным.
2. Но если перебираю другие списки - выдаёт ошибку
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
Код
import io.restassured.http.ContentType;
import io.restassured.internal.common.assertion.Assertion;
import io.restassured.path.json.JsonPath;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.List;
import java.util.stream.Collectors;
import static io.restassured.RestAssured.when;
import static io.restassured.RestAssured.given;
public class ReqresTest {
private final static String URL = "https://reqres.in/";
@Test
public void checkAvatarAndIdTest(){
List<UserData>users = given()
.when()
.contentType(ContentType.JSON)
.get(URL + "api/users?page=2")
.then().log().all()
.extract().body().jsonPath().getList("data", UserData.class);
// users.forEach(x-> Assertions.assertTrue(x.getAvatar().contains(x.getId().toString())));
// Assertions.assertTrue(users.stream().allMatch(x->x.getEmail().endsWith("reqres.in")));
List<String> avatars = users.stream().map(UserData::getAvatar).toList();
List<String> ids = users.stream().map(x -> x.getId().toString()).toList();
List<String> emails = users.stream().map(UserData::getEmail).toList();
List<String> fns = users.stream().map(UserData::getFirst_name).toList();
/* for(int i = 0; i < avatars.size(); i++){
Assertions.assertTrue(avatars.get(i).contains(ids.get(i)));
}*/
for(int i = 0; i < fns.size(); i++){
Assertions.assertTrue(fns.get(i).contains(ids.get(i)));
}
}
}
Ответы (1 шт):
Рассмотрим для примера fns. В этот список вы поместили имена пользователей этим кодом:
List<String> fns = users.stream().map(UserData::getFirst_name).toList();
А проверка fns.get(i).contains(ids.get(i)) проверяет, что в имени пользователя с индексом i (т.е. в fns.get(i)) содержится его идентификатор (ids.get(i)) как подстрока (contains тут - это метод у класса String). Не знаю, что именно хранится в идентификаторах пользователей, но скорее всего не first name пользователя.
Не ясно что собой представляет поле аватар, но очевидно, в строке, которую возвращает getAvatar содержится идентификатор пользователя, как подстрока.
