Prise en charge de concombre Java 8

Prise en charge de concombre Java 8

1. Vue d'ensemble

Dans ce rapide didacticiel, nous allons apprendre à utiliser les expressions lambda Java 8 avec Cucumber.

2. Configuration Maven

Tout d'abord, nous devrons ajouter la dépendance suivante à nospom.xml:


    info.cukes
    cucumber-java8
    1.2.5
    test

La dépendancecucumber-java8 peut être trouvée surMaven Central.

3. Définitions d'étape utilisant Lambda

Nous verrons ensuite comment écrire nos définitions d’étape à l’aide des expressions lambda Java 8:

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()));
    }
}

Nous avons utilisé une fonction d'achat simple comme exemple:

Given("I have (\\d+) in my wallet", (Integer money) -> budget = money);

Remarquez comment:

  • Dans cette étape, nous définissons le budget initial, nous avons un paramètremoney de typeInteger

  • Comme nous utilisons une instruction, nous n'avons pas besoin d'accolades

4. Scénario de test

Enfin, jetons un œil à nos scénarios de test:

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

Et la configuration de test:

@RunWith(Cucumber.class)
@CucumberOptions(features = { "classpath:features/shopping.feature" })
public class ShoppingIntegrationTest {
    //
}

Pour plus de détails sur la configuration du concombre, consultez le didacticielCucumber and Scenario Outline.

5. Conclusion

Nous avons appris à utiliser les expressions Java 8 lambda avec Cucumber.

Comme toujours, le code source complet est disponibleover on GitHub.