Как мы знаем, с новым 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");
});
}
Может кто-нибудь помочь мне понять, каковы преимущества использования лямбда-выражения?
А почему лямбда должна писать в конструкции?
Заранее спасибо за любой вклад.