有没有办法记录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只识别最后一步描述。
答案 0 :(得分:1)
您将遇到的主要问题是您的步骤名称。使用Cucumber,您希望使用相当长的纯文本段落,如/Given I have entered (.*) into the calculator/
,而文档工具则希望您主要记录名称为addNumber
的各种标识符(我对JSDoc不太确定,但是JSDuck对类和属性名称中允许的字符有限制。)
jsduck只识别最后一步的具体问题源于JSDuck试图自动检测这些doc-blocks描述的项目名称的事实,将它们检测为{ {1}},并且由于它不允许多个具有相同名称的属性,因此最后一个属性将在最终输出中呈现。
所以,你可以做的是给你的属性这样的名字:
Given
这当然相当乏味。你可以通过extending JSDuck with your own custom tags改进它,所以你可以写:
/**
* @property Given_I_have_entered_X_into_the_calculator
* Step 1 description.
*/
this.Given(/^Given I have entered (.*) into the calculator$/, function(next) {
...
});
不幸的是,JSDuck的自定义标签系统是有限的,因此您无法轻松地从代码中的正则表达式自动检测名称。可能虽然你分叉JSDuck并扩展它的内部。