javascript - 如何在 Cucumber 中创建和使用常见功能文件?

标签 javascript cucumber

我正在使用 Cucumber 来帮助定义我正在处理的一些测试,但是应用程序正在变得越来越大,我需要更好的结构。

project
|    feature_files
|    |   app1.js
|    |   app2.js
|    |   app3.js
|    |   ...
|    step_definitions
|    ...

所有应用程序都以相同的方式开始测试,有一个起始页,您可以在其中输入变量并单击链接。问题是 Cucumber 提示多个步骤定义匹配,因为这些开始步骤是在每个功能文件中定义的。

经过一些研究,这似乎是可能的,但我找不到关于如何实现它的 JavaScript 解决方案。 This solution is in Javathis SO answer gives a good idea of how to organize my folder structure .

如何实现可在多个功能文件中重用的通用功能文件?

最佳答案

只需将常用步骤移至单独的步骤定义文件中,并删除任何重复的步骤实现(步骤定义)。 Cucumber 将从 step_definitions 文件夹中的所有文件中获取步骤定义,因此哪个文件保存实现并不重要。然而,最佳实践是在单独的步骤定义文件中维护通用功能。

假设您有以下 3 个步骤。

Given User navigates to "Application1" url
Given User navigates to "Application2" url
Given User navigates to "Application3" url

现在,在开发步骤定义时,您不必为所有步骤编写 3 个不同的实现,而是只需开发一个步骤定义,并将方差作为参数,如下所示。

你的步骤定义应该是这样的

Given(/^User navigates to "([^"]*)" url$/), async function(app){
     // your logic goes here
});

现在在您的步骤定义中实现处理不同应用程序的逻辑。

关于javascript - 如何在 Cucumber 中创建和使用常见功能文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956800/

相关文章:

javascript - Underscore 从 JSON 对象创建对象数组

javascript - Protractor - 断言评估()值

java - Cucumber - 全局变换或表达式

java - cucumber ,所有场景重复登录步骤

java - 带有 Guice 的 cucumber - 多 guice 注入(inject)器

css - 如何使用 Rails、Cucumber 和 Capybara 测试 Dropzone.js 上传?

javascript - 我想在仅单击一个按钮时将 <p> 标签的颜色从红色更改为绿色

Javascript 按特定顺序按多个属性递归分组和数组

javascript - 如何改变css3动画状态

javascript - 通过GET请求向express server请求数据返回的是document而不是data