Integrácia jarnej uhorky

1. Prehľad

Cucumber je veľmi výkonný testovací rámec napísaný v programovacom jazyku Ruby, ktorý sa riadi metodikou BDD (behavior-driven development). Umožňuje vývojárom zapisovať prípady použitia na vysokej úrovni do obyčajného textu, ktorý môžu overiť netechnické subjekty, a zmeniť ich na spustiteľné testy napísané v jazyku zvanom Gherkin.

O tých sme už hovorili v inom článku.

Cieľom integrácie Cucumber-Spring je uľahčiť automatizáciu testov. Keď budeme mať testy uhorky integrované do Springu, mali by sme byť schopní ich vykonať spolu s Maven buildom.

2. Maven závislosti

Začnime používať integráciu Cucumber-Spring definovaním závislostí Maven - počnúc závislosťou Cucumber-JVM:

 io.cucumber uhorka-java 6.8.0 test 

Najnovšiu verziu aplikácie Cucumber JVM nájdete tu.

Ďalej pridáme závislosť testovania JUnit a Cucumber:

 io.cucumber uhorka-junit 6.8.0 test 

Najnovšiu verziu aplikácie Cucumber JUnit nájdete tu.

A nakoniec závislosť od jari a uhorky:

 io.cucumber uhorka-jar 6.8.0 test 

Aj tu si môžeme pozrieť najnovšiu verziu Cucumber Spring.

3. Konfigurácia

Teraz sa pozrieme na to, ako môžeme integrovať Cucumber do jarnej aplikácie.

Najskôr vytvoríme aplikáciu Spring Boot - pri ktorej sa budeme riadiť článkom o aplikácii Spring-Boot. Potom vytvoríme službu Spring REST a napíšeme pre ňu Uhorkový test.

3.1. Ovládač REST

Najprv si vytvorme jednoduchý radič:

@RestController verejná trieda VersionController {@GetMapping ("/ version") public String getVersion () {return "1.0"; }}

3.2. Definície kroku uhorky

Všetko, čo potrebujeme na vykonanie našich testov na uhorky s JUnit, je vytvorenie jednej prázdnej triedy s anotáciou @RunWith (Cucumber.class):

@RunWith (Cucumber.class) @CucumberOptions (features = "src / test / resources") verejná trieda CucumberIntegrationTest {}

Môžeme vidieť anotáciu @CucumberOptions kde určujeme umiestnenie súboru Gherkin, ktorý je tiež známy ako súbor funkcií. V tomto okamihu uhorka rozpoznáva jazyk uhorky; viac o Gherkinovi sa dočítate v článku uvedenom v úvode.

Takže teraz vytvorme súbor funkcií Uhorka:

Funkcia: verziu je možné načítať Scenár: klient zavolá GET / verzia Keď klient zavolá / verzia Potom klient dostane stavový kód 200 A klient dostane server verzie 1.0

Scenár spočíva v uskutočnení GET volania na adresu URL služby REST / verzia a overiť odpoveď.

Ďalej musíme vytvoriť takzvaný lepiaci kód. Jedná sa o metódy, ktoré spájajú jeden Gherkinov krok s kódom Java.

Tu musíme možnosti - vo vnútri anotácií môžeme použiť výrazy uhorky alebo regulárne výrazy. V našom prípade sa budeme držať regulárnych výrazov:

@Keď ("^ klient zavolá / verzia $") public void the_client_issues_GET_version () hodí Throwable {executeGet ("// localhost: 8080 / version"); } @Then ("^ klient dostane stavový kód (\ d +) $") public void the_client_receives_status_code_of (int statusCode) hodí Throwable {HttpStatus currentStatusCode = latestResponse.getTheResponse (). GetStatusCode (); assertThat ("stavový kód je nesprávny:" + latestResponse.getBody (), currentStatusCode.value (), je (statusCode)); } @And ("^ klient dostane verziu servera (. +) $") Public void the_client_receives_server_version_body (reťazcová verzia) hodí Throwable {assertThat (latestResponse.getBody (), je (verzia)); }

Takže poďme integrovať testy uhorky s kontextom jarnej aplikácie. Za týmto účelom vytvoríme novú triedu a pridáme k nej poznámky @SpringBootTest a @CucumberContextConfiguration:

@CucumberContextConfiguration @SpringBootTest verejná trieda SpringIntegrationTest {// executeGet implementation}

Teraz všetky definície uhorky môžu ísť do samostatnej triedy Java, ktorá sa rozširuje SpringIntegrationTest:

public class StepDefs extends SpringIntegrationTest {@When ("^ the client calls / version $") public void the_client_issues_GET_version () throws Throwable {executeGet ("// localhost: 8080 / version"); }}

Všetci sme pripravení na testovaciu prevádzku.

Nakoniec môžeme urobiť rýchly beh cez príkazový riadok, jednoducho spustiť mvn clean install -Integrácia - Maven vykoná integračné testy a zobrazí výsledky v konzole.

3 scenáre ([32m3 prešlo [0m) 9 krokov ([32m9 prešlo [0m] 0m1,054s Priebeh testov: 12, zlyhania: 0, chyby: 0, vynechané: 0, uplynulý čas: 9,283 s - v com.baeldung.CucumberTest 2016-07-30 06:28: 20.142 INFO 732 --- [Thread-2] AnnotationConfigEmbeddedWebApplicationContext: Uzavretie org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext: dátum spustenia [Sat Jul 30 06:28:12 CDT 2016]; koreň kontextovej hierarchie Výsledky: Spustené testy: 12, Zlyhania: 0, Chyby: 0, Vynechané: 0 

4. Záver

Po nakonfigurovaní uhorky s pružinou bude užitočné pri testovaní BDD použiť komponenty nakonfigurované na jar. Toto je jednoduchý sprievodca integráciou testu Uhorka do aplikácie Spring-Boot.

Ako obvykle sú všetky ukážky kódu zobrazené v tomto tutoriále dostupné na GitHub.