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.