Зачем применять огуречный stepdef с лямбда-выражением - хорошая практика? - PullRequest
0 голосов
/ 22 марта 2019

Как мы знаем, с новым API Cucumber-Java8 мы можем написать наши определения шагов с помощью лямбда-выражений. Пример кода из github-cucumber:

package foo;

import cucumber.api.java8.En;

public class TestLambdaStepdefs implements En {

    //Lambda-steps inside Constructors
    public TestLambdaStepdefs() {
        Given("I have (\\d+) cukes in my belly", (Integer cukes) -> {
            System.out.format("Cukes: %n\n", cukes);
        });

    Then("I have a some step definition", () -> {
             throw new Exception();
        }); 

    Given("testlambda", () -> {
         System.out.println("Inside Given");
    });

    When("^the search phrase \"([^\"]*)\" is entered$", (String phrase) -> {
        System.out.println("Inside When");
    });

    Then("^results for \"([^\"]*)\" are shown$", (String phrase) -> {
        System.out.println("Inside Then");
    });
    }

Может кто-нибудь помочь мне понять, каковы преимущества использования лямбда-выражения? А почему лямбда должна писать в конструкции?

Заранее спасибо за любой вклад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...