Suporte para Java 8 em pepino

Suporte para Java 8 em pepino

1. Visão geral

Neste tutorial rápido, aprenderemos como usar expressões lambda do Java 8 com Cucumber.

2. Configuração do Maven

Primeiro, precisaremos adicionar a seguinte dependência ao nossopom.xml:


    info.cukes
    cucumber-java8
    1.2.5
    test

A dependência decucumber-java8 pode ser encontrada emMaven Central.

3. Definições de etapas usando lambda

A seguir, discutiremos como escrever nossas Definições de etapa usando expressões lambda do 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()));
    }
}

Usamos um recurso simples de compra como exemplo:

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

Note como:

  • Nesta etapa, definimos o orçamento inicial, temos um parâmetromoney com tipoInteger

  • Como estamos usando uma instrução, não precisamos de chaves

4. Cenário de teste

Finalmente, vamos dar uma olhada em nossos cenários de teste:

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

E a configuração de teste:

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

Para obter mais detalhes sobre a configuração do pepino, verifique o tutorialCucumber and Scenario Outline.

5. Conclusão

Aprendemos como usar expressões lambda do Java 8 com o Cucumber.

Como sempre, o código-fonte completo está disponívelover on GitHub.