Projekt

Obecné

Profil

Kontraktové testy » Historie » Verze 13

Václav Hrabík, 2023-04-30 10:45

1 1 Petr Urban
h1. Kontraktové testy
2 2 Petr Urban
3 11 Václav Hrabík
V pom.xml byla přidána dependenci:
4
5
<dependency>
6
    <groupId>org.springframework.cloud</groupId>
7
    <artifactId>spring-cloud-starter-contract-verifier</artifactId>
8
    <version>2.1.1.RELEASE</version>
9
    <scope>test</scope>
10
</dependency>
11
12
a plugin na kontraktové testy:
13
14
<plugin>
15
    <groupId>org.springframework.cloud</groupId>
16
    <artifactId>spring-cloud-contract-maven-plugin</artifactId>
17
    <version>3.0.3</version>
18
    <extensions>true</extensions>
19
    <configuration>
20
        <testFramework>JUNIT5</testFramework>
21
        <baseClassForTests>
22
        "třída, mokojící vše potřebné pro testy"
23
        </baseClassForTests>
24
    </configuration>
25
</plugin>
26
27 3 Václav Hrabík
Byl zde problém s verzemi -> dávat si na to pozor.
28 4 Václav Hrabík
29 5 Václav Hrabík
Pro definici testu je používat skript v .groovy. Ve scriptu se definuje Http request, který chceme posílat, a response, kterou očekáváme na daný request. Dále je možné definovat nějaký popis kontraktu.
30
31
Pro úvodní konfiguraci byla vytvořena třída BaseTest (src/test/java/v2/controler). Zde se musí namokovat služby, které nejsou přímo v testované aplikaci -> databáze, oauth, atd. Dále se vytvoří přes "@Autowired" kontext celé aplikace skrze třídu "WebApplicationContext". Před každým testem se pak musí nadefinovat co se má stát, když se volá namokovaná služba.
32
33 10 Václav Hrabík
Pro vygenerování testů se musí rozbalit "Maven" menu po pravé straně ide. Tam v SPADe záložce se rozbalí "LifeCycle" záložka. Zde se musí spustit dva příkazy v daném pořadí:
34
35
# "clean" - smaže všechny původní testy -> tím uvolní místo pro nové
36
# "test" - vygeneruje a spustí všechny dostupné testy (jednotkové i kontraktové)
37 12 Václav Hrabík
38
h2. Jednotlivé kontrakty
39 13 Václav Hrabík
40
[[Registrační_kontrakt]]