From d1247eec187a92f3f2a07ae8561c1207989da31a Mon Sep 17 00:00:00 2001 From: spawn Date: Sun, 15 Feb 2026 14:33:40 +0300 Subject: [PATCH] Harden tests and update runtime config docs --- README.md | 3 ++- src/main/java/ru/otus/petstore/config/TestConfig.java | 11 ++++------- .../otus/petstore/tests/PetNegativeScenariosTest.java | 5 ++++- .../otus/petstore/tests/PetPositiveScenariosTest.java | 6 ++++-- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f4efcaf..ed2f97d 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ - проверка схемы ответа через Json Schema Validator. 3. Негативные сценарии: - - `POST /pet` с malformed JSON возвращает ошибку; + - `POST /pet` с malformed JSON возвращает `4xx`; - `GET /pet/{id}` для удаленного/несуществующего id возвращает `404`; - `GET /pet/findByStatus` с невалидным статусом возвращает пустой список. @@ -57,6 +57,7 @@ mvn verify ## Параметры запуска - `base.uri` (по умолчанию `https://petstore.swagger.io`) - `base.path` (по умолчанию `/v2`) +- значения читаются из `System properties` во время выполнения тестов. Пример: ```bash diff --git a/src/main/java/ru/otus/petstore/config/TestConfig.java b/src/main/java/ru/otus/petstore/config/TestConfig.java index fed7d62..633f7f1 100644 --- a/src/main/java/ru/otus/petstore/config/TestConfig.java +++ b/src/main/java/ru/otus/petstore/config/TestConfig.java @@ -2,20 +2,17 @@ package ru.otus.petstore.config; public final class TestConfig { - private static final String BASE_URI = - System.getProperty("base.uri", "https://petstore.swagger.io"); - - private static final String BASE_PATH = - System.getProperty("base.path", "/v2"); + private static final String DEFAULT_BASE_URI = "https://petstore.swagger.io"; + private static final String DEFAULT_BASE_PATH = "/v2"; private TestConfig() { } public static String getBaseUri() { - return BASE_URI; + return System.getProperty("base.uri", DEFAULT_BASE_URI); } public static String getBasePath() { - return BASE_PATH; + return System.getProperty("base.path", DEFAULT_BASE_PATH); } } diff --git a/src/test/java/ru/otus/petstore/tests/PetNegativeScenariosTest.java b/src/test/java/ru/otus/petstore/tests/PetNegativeScenariosTest.java index 376b8b4..87a467e 100644 --- a/src/test/java/ru/otus/petstore/tests/PetNegativeScenariosTest.java +++ b/src/test/java/ru/otus/petstore/tests/PetNegativeScenariosTest.java @@ -28,7 +28,10 @@ public class PetNegativeScenariosTest { """; int status = petService.createPetRaw(brokenJson).statusCode(); - MatcherAssert.assertThat(status, Matchers.anyOf(Matchers.is(400), Matchers.is(405), Matchers.is(500))); + MatcherAssert.assertThat( + status, + Matchers.allOf(Matchers.greaterThanOrEqualTo(400), Matchers.lessThan(500)) + ); } /** diff --git a/src/test/java/ru/otus/petstore/tests/PetPositiveScenariosTest.java b/src/test/java/ru/otus/petstore/tests/PetPositiveScenariosTest.java index bea19cc..bf40acc 100644 --- a/src/test/java/ru/otus/petstore/tests/PetPositiveScenariosTest.java +++ b/src/test/java/ru/otus/petstore/tests/PetPositiveScenariosTest.java @@ -28,11 +28,13 @@ public class PetPositiveScenariosTest { try { Response createResponse = petService.createPetExpectSuccess(pet); - assertThat(createResponse.path("id"), equalTo((int) petId)); + Number createdPetId = createResponse.path("id"); + assertThat(createdPetId.longValue(), equalTo(petId)); assertThat(createResponse.path("name"), equalTo(pet.getName())); Response getResponse = retryGetPetById(petService, petId); - assertThat(getResponse.path("id"), equalTo((int) petId)); + Number fetchedPetId = getResponse.path("id"); + assertThat(fetchedPetId.longValue(), equalTo(petId)); assertThat(getResponse.path("name"), equalTo(pet.getName())); } finally { petService.deletePetIfExists(petId);