Kontraktové testy » Historie » Verze 17
Václav Hrabík, 2023-05-18 09:35
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]] |
||
41 | 14 | Václav Hrabík | [[Přihlašovací_kontrakt]] |
42 | 15 | Václav Hrabík | [[Odhlašovací_kontrakt]] |
43 | 16 | Václav Hrabík | [[About_kontrakt]] |
44 | [[Konfigurační_kontrakt]] |
||
45 | 17 | Václav Hrabík | [[Detection_kontrakt]] |