Поддержка Cucumber Java 8

Поддержка 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.