Cucumber Java 8-Unterstützung
1. Überblick
In diesem kurzen Tutorial erfahren Sie, wie Sie Java 8-Lambda-Ausdrücke mit Cucumber verwenden.
2. Maven-Konfiguration
Zuerst müssen wir unserenpom.xml die folgende Abhängigkeit hinzufügen:
info.cukes
cucumber-java8
1.2.5
test
Die Abhängigkeit voncucumber-java8 kann vonMaven Central gefunden werden.
3. Schrittdefinitionen mit Lambda
Als nächstes werden wir diskutieren, wie unsere Schrittdefinitionen mit Java 8 Lambda-Ausdrücken geschrieben werden:
public class ShoppingStepsDef implements En {
private int budget = 0;
public ShoppingStepsDef() {
Given("I have (\\d+) in my wallet", (Integer money) -> budget = money);
When("I buy .* with (\\d+)", (Integer price) -> budget -= price);
Then("I should have (\\d+) in my wallet", (Integer finalBudget) ->
assertEquals(budget, finalBudget.intValue()));
}
}
Wir haben ein einfaches Einkaufsfeature als Beispiel verwendet:
Given("I have (\\d+) in my wallet", (Integer money) -> budget = money);
Beachte wie:
-
In diesem Schritt legen wir das anfängliche Budget fest, wir haben einen Parametermoney vom TypInteger
-
Da wir eine Aussage verwenden, brauchten wir keine geschweiften Klammern
4. Testszenario
Schauen wir uns zum Schluss unsere Testszenarien an:
Feature: Shopping
Scenario: Track my budget
Given I have 100 in my wallet
When I buy milk with 10
Then I should have 90 in my wallet
Scenario: Track my budget
Given I have 200 in my wallet
When I buy rice with 20
Then I should have 180 in my wallet
Und die Testkonfiguration:
@RunWith(Cucumber.class)
@CucumberOptions(features = { "classpath:features/shopping.feature" })
public class ShoppingIntegrationTest {
//
}
Weitere Informationen zur Gurkenkonfiguration finden Sie im Lernprogramm vonCucumber and Scenario Outline.
5. Fazit
Wir haben gelernt, wie man Java 8 Lambda-Ausdrücke mit Cucumber verwendet.
Wie immer ist der vollständige Quellcodeover on GitHub verfügbar.