我们知道,使用新的Cucumber-Java8 API,我们可以使用lambda表达式编写步骤定义。 来自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");
});
}
有人可以帮助我了解使用lambda表达式的优点吗? 以及为什么lambda应该在构造中写?
谢谢您的输入。
答案 0 :(得分:1)
这是为了在编写Cucumber测试时启用Java Functional Programming Style。阅读有关功能编程功能here的更多信息。关键特征将是: