Cucumber,Java8:查找由 lambda 表达式定义的步骤的用法

DCz*_*Czo 5 lambda intellij-idea cucumber java-8 cucumber-jvm

目前在我们项目的测试中,我们从使用带注释的步骤定义切换,例如:

public class Steps {
    @Given("^Step name$")
    void methodName() { 
        // do sth
    }
}
Run Code Online (Sandbox Code Playgroud)

到 lambda 表达式:

public class Steps implements En {
    public Steps() {
        Given("^Step name$", () -> 
            // do sth
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

使用 Intellij Cucumber Java 插件时,很容易找到某个步骤的用法,因为它寻找带注释的方法的用法(我推测)。但是,现在我们必须手动搜索作为参数传递的正则表达式。

我的第一个问题是:有没有一种巧妙的方法可以用 lambda 表达式做到这一点?

此外:当使用 Intellij 的工具进行版本控制并提交包含大量步骤定义的文件时,代码分析工具将永远运行(我猜这是因为构造函数必须启动大量代码)。

所以第二个问题是:既然步骤库没有缩小的可能性,并且经常使用步骤用法搜索,那么切换回 Ye Olde Way 即使用带注释的方法不是一个好主意吗?

And*_*rey 1

查找 java-8 样式步骤定义的用法尚不工作。人们可以投票并遵循此请求:IDEA-144648