angularjs - 如何在另一个场景中使用 beforehook 调用 Cucumber 场景
问题描述
我用量角器和黄瓜。我有一个场景,我需要将另一个场景称为前提条件。图案是这样的:
场景1:
@test1
Scenario: first scenario
场景2:
@test2
//Need to call the first scenario as the pre-condition
Scenario: second scenario
在这里,我想用黄瓜钩。所以,我的钩子文件是这样的:
this.Before({tags: ["@test2"]}, function (event, callback) {
console.log('call the first scenario');
this.feature(tags: ["@test1"]);
callback();
});
有人能告诉我我该怎么做“this.feature(tags: ["@test1"]);”
解决方案
在 Cucumber 中,您使用 Given 进行设置。
在您的情况下,您需要编写一个 Given 来完成您的第一个场景所做的事情。现在的问题变成了如何优雅地做到这一点
如果您将所有步骤定义实现为对辅助方法的单个调用,这将变得相当容易。由于每个步骤定义只是一个调用,您可以将场景 1 转换为一系列调用,例如 foo、bar、baz
现在对于场景 2 及其给定,您编写一个新方法scenario 1
,该方法只是重复调用,例如
def scenario1
foo
bar
baz
end
通过这样做,您已经将问题从 Cucumber 中移出并进入您正在实施您的步骤的编程语言中。这种方法有一个陡峭的学习曲线,你必须
- 学习如何用您选择的语言编写辅助方法
- 了解如何在您的功能之间共享辅助方法
我无法帮助您,因为您使用的是 JAVA 而我使用的是 Ruby。我确实知道它在 Java 中比在 Ruby 中复杂得多。然而,它绝对值得学习如何做到这一点,因为这将使您能够使所有杯子变得更简单,并让您有机会让它们变得更快。
推荐阅读
- python - NameError:名称“我”未定义
- mongodb - MongoDB - 我应该将消息集合拆分为 1 个以上吗?
- spring-boot - Spring Boot 读取超时问题(SocketTimeoutException)
- javascript - 循环遍历集合中的所有文档和每个文档中的数组以将数组值与项目匹配
- ios - 来自 swift 应用程序的 HTTP 响应的尾随 Nil
- asp.net - DbContext 依赖注入问题 - System.ObjectDisposedException:无法访问已处置的对象
- dart - 有没有办法从firestore Stream创建一个全局变量
更新自己? - python - 在大熊猫中添加 2262 年之后的时间
- python - 如何从解析的文本中获得查询的答案?
- linux - 是否有“我是谁”和“登录名”的简单替代方法?