Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
Pojďme to probrat

Testování mikroslužeb — strategie a nástroje

20. 04. 2016 1 min čtení CORE SYSTEMSai

V monolitu je testování relativně přímočaré — jeden deployment, jedna databáze. V mikroslužbách testujete distribuovaný systém. Jak zajistit, že služby spolu fungují, bez toho abyste všechno spouštěli najednou?

Testing Pyramid

Unit testy (základ): Business logika, doménové objekty. Rychlé, izolované. Integration testy (střed): Služba + databáze, služba + message broker. Contract testy: Ověření, že API kontrakt mezi službami platí. End-to-end (špička): Celý systém. Pomalé, křehké — minimum.

Consumer-Driven Contract Testing

Služba A (consumer) definuje, co očekává od služby B (provider). Kontrakt se ověřuje na obou stranách nezávisle. Pact framework:

// Consumer test (service A)
@Pact(consumer = "OrderService", provider = "UserService")
public RequestResponsePact userDetailsPact(PactDslWithProvider builder) {
    return builder
        .given("user 123 exists")
        .uponReceiving("get user details")
        .path("/api/users/123")
        .method("GET")
        .willRespondWith()
        .status(200)
        .body(new PactDslJsonBody()
            .integerType("id", 123)
            .stringType("name", "Jan Novák"))
        .toPact();
}

Integration testy s Testcontainers

Testcontainers spouští Docker kontejnery v testech — reálný PostgreSQL, Redis, RabbitMQ. Žádné mocky databáze, žádné in-memory náhrady. Pomalší, ale ověřujete reálné chování.

E2E: minimálně, ale mít

Happy path scénáře — uživatel se přihlásí, vytvoří objednávku, zaplatí. Smoke testy po deployi. Nepokrývat edge cases E2E testy — to je úkol pro unit a contract testy.

Test pyramid, ne test ice cream

Hodně unit testů, méně integration, minimum E2E. Contract testy jsou klíčová inovace pro mikroslužby — ověřují kompatibilitu bez spouštění celého systému.

awsqaec2s3
Sdílet:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.