Поддержка Cucumber Java 8
1. обзор
В этом кратком руководстве мы узнаем, как использовать лямбда-выражения Java 8 с Cucumber.
2. Конфигурация Maven
Во-первых, нам нужно добавить следующую зависимость к нашемуpom.xml:
info.cukes
cucumber-java8
1.2.5
test
Зависимостьcucumber-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.
Как всегда, доступен полный исходный кодover on GitHub.