«1. Обзор
В этом кратком руководстве мы узнаем, как использовать лямбда-выражения Java 8 с Cucumber.
2. Конфигурация Maven
Во-первых, нам нужно добавить следующую зависимость в наш pom.xml:
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java8</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
Зависимость огурца-java8 можно найти на Maven Central.
3. Определения шагов с использованием лямбда
Далее мы обсудим, как написать наши определения шагов с использованием лямбда-выражений 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()));
}
}
В качестве примера мы использовали простую функцию покупок:
Given("I have (\\d+) in my wallet", (Integer money) -> budget = money);
~~ ~ Обратите внимание:
-
На этом шаге мы устанавливаем начальный бюджет, у нас есть один параметр money с типом Integer Поскольку мы используем один оператор, нам не нужны фигурные скобки
4. Тестовый сценарий
Наконец, давайте взгляните на наши тестовые сценарии:
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
И тестовую конфигурацию:
@RunWith(Cucumber.class)
@CucumberOptions(features = { "classpath:features/shopping.feature" })
public class ShoppingIntegrationTest {
//
}
Для получения более подробной информации о конфигурации огурца см. учебник Cucumber and Scenario Outline.
5. Заключение
Мы узнали, как использовать лямбда-выражения Java 8 с Cucumber.
Как всегда, полный исходный код доступен на GitHub.
«Огурец Поддержка Java 8»