【发布时间】:2021-12-15 22:22:59
【问题描述】:
在新的 cucumber jvm 8 中,我看到很多使用 lambda 的钩子和步骤定义示例,但它们都写在构造函数中。我们有什么理由需要在构造函数中编写吗?或者我们可以使用 lambda 表达式而不是构造函数来编写步骤定义和钩子吗?
【问题讨论】:
标签: cucumber cucumber-jvm cucumber-java
在新的 cucumber jvm 8 中,我看到很多使用 lambda 的钩子和步骤定义示例,但它们都写在构造函数中。我们有什么理由需要在构造函数中编写吗?或者我们可以使用 lambda 表达式而不是构造函数来编写步骤定义和钩子吗?
【问题讨论】:
标签: cucumber cucumber-jvm cucumber-java
当您编写一个步骤定义时,它必须在LamdbaGlueRegistry 中注册。您可以在io.cucumber.java8.En 默认实现中找到详细信息。
因此您必须以某种方式执行该代码。最简单的方法是从构造函数中执行它,因为 Cucumber 在每个场景运行时都会实例化所有位于粘合包下的类。
理论上,您可以使用相同的代码在任何其他位置注册定义。您唯一需要确保注册表已初始化并且您的代码可以从 Cucumber 入口点访问。
【讨论】: