gpt4 book ai didi

javascript - 如何记录 (jsduck/jsdoc) cucumber.js 步骤定义?

转载 作者:行者123 更新时间:2023-11-28 00:58:24 26 4
gpt4 key购买 nike

有没有办法在 cucumber.js 步骤定义代码中记录步骤?我尝试用 jsduck @class 来模拟它:

/**
* @class Global.steps.common
* Common steps.
*/
var steps = module.exports = function() {
/**
* Step 1 description.
*/
this.Given(/^StepDef1$/, function(next) {
...
});

/**
* Step 2 description.
*/
this.Given(/^StepDef2$/, function(next) {
...
});
});

但是 jsduck 只能识别最后一步描述。

最佳答案

您将遇到的主要问题是步骤的名称。使用 Cucumber,您希望使用相当长的纯文本段落,例如 /考虑到我已在计算器中输入了 (.*),而文档工具希望您主要记录名称为 的各种标识符>addNumber(我不太确定 JSDoc,但 JSDuck 对类和属性名称中允许的字符有限制)。

具体问题是,jsduck 只识别最后一步,源于 JSDuck 尝试自动检测这些文档 block 描述的项目名称的事实,将它们检测为 Given,并且由于它不允许多个属性具有相同的名称,因此只有最后一个属性将在最终输出中呈现。

因此,您可以为您的属性命名如下:

/**
* @property Given_I_have_entered_X_into_the_calculator
* Step 1 description.
*/
this.Given(/^Given I have entered (.*) into the calculator$/, function(next) {
...
});

这当然相当乏味。您可以通过 extending JSDuck with your own custom tags 对此进行改进,所以你可以写:

/**
* @Given I have entered ? into the calculator
* Step 1 description.
*/
this.Given(/^Given I have entered (.*) into the calculator$/, function(next) {
...
});

不幸的是,JSDuck 的自定义标签系统是有限的,因此您无法轻松地从代码中的正则表达式自动检测名称。如果您 fork JSDuck 并扩展它的内部结构,则可能会这样。

关于javascript - 如何记录 (jsduck/jsdoc) cucumber.js 步骤定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25950016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com