Gurken-Test mit Cucumber

Mit Cucumber können Testfälle schön in Worte beschrieben werden. Hier mal ein schneller quick Einstieg.

Gurken-Test mit Cucumber

Eine Testfall Beschreibung kann in Worten mit der Gherkin Syntax geschehen, z.B diese kalender.feature:

Feature: Lebenskalender überprüfen

		Scenario: Ein Lebenskalender aus der Konsole ausdrucken für Frauen
	        
	        Given eine Frau im Alter von 52 Jahren und 10 Monaten

	    Scenario: Ein Lebenskalender aus der Konsole ausdrucken für Männer
	        
	        Given eine Mann im Alter von 52 Jahren und 10 Monaten

In Eclipse sind die JUnit-Test auch schön lesbar, z.B.:

Gurken-Test mit Cucumber

Für Eclipse gibt es ein Natural 0.7.6 Plug-In für die *.feature Dateien. Das kann leicht über den Eclipse Marketplace installiert werden:

Gurken-Test mit Cucumber

Einfach alles installieren:

Gurken-Test mit Cucumber

Die Testfall implementierung kann z.B. so aussehen. Dieser Testfall gibt nur einen Kalender auf der Konsole aus, deshalb gibt es nur das Generieren:

package de.wenzlaff.lebenskalender;

import cucumber.api.java.en.Given;

/**
 * Testklasse für den Lebenskalender.
 * 
 * @author Thomas Wenzlaff
 *
 */
public class LebenskalenderCucumber {

	@Given("^eine Mann im Alter von (\\d+) Jahren und (\\d+) Monaten$")
	public void generateMann(int jahre, int monate) throws Throwable {
		Lebenskalender.generate(jahre, monate, false);
	}

	@Given("^eine Frau im Alter von (\\d+) Jahren und (\\d+) Monaten$")
	public void generateFrau(int jahre, int monate) throws Throwable {
		Lebenskalender.generate(jahre, monate, true);
	}

}

Eine Testklasse zum starten des Testfalls:

package de.wenzlaff.lebenskalender;

import org.junit.runner.RunWith;

import cucumber.api.junit.Cucumber;

/**
 * Testsuite für den Lebenskalender.
 * 
 * @author Thomas Wenzlaff
 *
 */
@RunWith(Cucumber.class)
public class StartCucumberTest {

}

Folgende Abhängigkeiten werden in der pom.xml benötigt:

<dependency>
		  <groupId>junit</groupId>
		  <artifactId>junit</artifactId>
		  <version>4.12</version>
		  <scope>test</scope>
		</dependency>
		<!-- Cucumber Test -->
		<dependency>
	      <groupId>info.cukes</groupId>
	      <artifactId>cucumber-junit</artifactId>
	      <version>1.2.5</version>
	    </dependency>
	    <dependency>
	       <groupId>info.cukes</groupId>
	        <artifactId>cucumber-java</artifactId>
	        <version>1.2.5</version>
	        <scope>test</scope>
	     </dependency>

Das ganze Testprojekt kann auf Github geladen werden.

Eine weitergehende Anleitung auf deutsch gibt es hier.

Ähnliche Artikel:

  1. PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender
  2. JUnit 4.12 erschienen
  3. Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?

wallpaper-1019588
10 Tipps für die Rasur
wallpaper-1019588
[Autorentag] Im Gespräch mit Ella Green
wallpaper-1019588
Bierbrauen mit Künstlicher Intelligenz & Crowdsourcing
wallpaper-1019588
Wie funktioniert eine Stoffbinde?
wallpaper-1019588
Leserrezension "Die Schule der Nacht" von Ann A. McDonald
wallpaper-1019588
Linker Anwaltsverein mahnt Polizei: Es gibt ein Grundrecht auf linke Gewalt und Zerstörungswut
wallpaper-1019588
Das Nintendo Classic Mini: Super Nintendo Entertainment System kommt
wallpaper-1019588
Scharf eingelegte Rote Rüben