Testovanie s pružinou a Spockom

1. Úvod

V tomto krátkom tutoriáli si ukážeme výhody kombinácie podpornej sily testovacieho rámca Spring Boot a expresivity Spock framework, či už ide o testy jednotky alebo integrácie.

2. Nastavenie projektu

Začnime jednoduchou webovou aplikáciou. Môže pozdraviť, zmeniť pozdrav a resetovať ho späť na predvolené pomocou jednoduchých REST hovorov. Okrem hlavnej triedy používame jednoduchú RestController poskytnúť funkčnosť:

@RestController @RequestMapping ("/ ahoj") verejná trieda WebController {@GetMapping public String salutation () {return "Hello world!"; }}

Ovládač teda pozdraví „Hello world!“. The @RestController anotácie a skratky zabezpečujú registráciu koncového bodu REST.

3. Maven Závislosti od testu Spock a Spring Boot

Začneme pridaním závislostí Maven a podľa potreby konfiguráciou pluginu Maven.

3.1. Pridanie závislostí rámca Spock s jarnou podporou

Pre samotného Spocka a pre jarnú podporu potrebujeme dve závislosti:

 org.spockframework testovacie jadro 1,2-groovy-2,4 test org.spockframework testovacie pružiny 1,2-groovy-2,4 test 

Všimnite si, že verzie sú špecifikované s odkazom na použitú groovy verziu.

3.2. Pridanie testu jarného spustenia

Aby sme mohli používať testovacie pomôcky Spring Boot Test, potrebujeme nasledujúcu závislosť:

 org.springframework.boot spring-boot-starter-test 2.2.2.RELEASE test 

3.3. Nastavuje sa Groovy

A keďže Spock je založený na Groovy, musíme pridať a nakonfigurovať gmavenplus-plugin tiež aby sme mohli používať tento jazyk v našich testoch:

 org.codehaus.gmavenplus gmavenplus-plugin 1.6 compileTests 

Upozorňujeme, že keďže Groovy potrebujeme iba na testovacie účely, a preto obmedzujeme cieľ doplnku na compileTest.

4. Načítanie ApplicationContext v Spockovom teste

Jeden jednoduchý test je skontrolujte, či sú vytvorené všetky fazule v kontexte aplikácie Spring:

@SpringBootTest trieda LoadContextTest rozširuje špecifikáciu {@Autowired (required = false) súkromný WebController webController def "keď je načítaný kontext, sú vytvorené všetky očakávané fazule" () {expect: "je vytvorený WebController" webController}}

Pre tento test integrácie musíme spustiť ApplicationContext, čo je čo @SpringBootTest robí pre nás. Spock poskytuje v našom teste oddelenie sekcií kľúčovými slovami ako „kedy", “potom “ alebo „očakávať “.

Okrem toho môžeme ako posledný riadok nášho testu využiť Groovy Truth na kontrolu, či je fazuľa nulová.

5. Používanie WebMvcTest v Spockovom teste

Rovnako môžeme testovať správanie WebController:

@AutoConfigureMockMvc @WebMvcTest trieda WebControllerTest rozširuje špecifikáciu {@Autowired private MockMvc mvc def "keď sa vykoná get, potom má odpoveď stav 200 a obsah je 'Hello world!'" () {Expect: "Stav je 200 a odpoveď je 'Hello world! '"mvc.perform (get (" / hello ")) .andExpect (status (). isOk ()) .andReturn () .response .contentAsString ==" Ahoj svet! " }}

Je dôležité poznamenať, že v našich testoch Spock (alebo skôr Technické údaje) môžeme použiť všetky známe anotácie z testovacieho rámca Spring Boot, na ktoré sme zvyknutí.

6. Záver

V tomto článku sme vysvetlili, ako nastaviť projekt Maven na kombinované použitie Spocku a testovacieho rámca Spring Boot. Ďalej sme videli, ako sa oba rámce navzájom dokonale dopĺňajú.

Ak sa chcete hlbšie ponoriť, pozrite si naše návody týkajúce sa testovania pomocou Spring Boot, rámca Spock a jazyka Groovy.

Nakoniec zdrojový kód s ďalšími príkladmi nájdete v našom úložisku GitHub.


$config[zx-auto] not found$config[zx-overlay] not found