黄瓜测试。动态获取步骤regexp

时间:2017-01-03 11:37:37

标签: javascript cucumber tdd integration-testing cucumberjs

我想获得一些关于黄瓜测试中每步使用次数的统计数据

所以我想说我有一个像

这样的步骤定义
this.When(/^"([^"]*)" is clicked$/, function (someElementId, callback){});

此步骤的2个用法(在一个或多个要素文件中)

"a" is clicked
"b" is clicked

我想知道这个步骤"([^"]*)" is clicked被使用了两次并获得每次执行所花费的时间。我想动态地做,而不涉及实际的步骤定义。

我可以在后续活动中获得类似"a" was clicked的步骤名称,但我无法获得正则表达式。理想情况下,我希望得到step.getRegexp()

 this.AfterStep(function (step, callback) {
   console.log(step.getName())// => prints "a" was clicked
   //need smth like step.getRegexp() to make "a" and "b" click identified as the same step
 }

1 个答案:

答案 0 :(得分:1)

您可以使用相同的正则表达式来匹配步骤的名称。

let clickCounter = 0;

module.exports = function () {
  const LINK_IS_CLICKED_STEP_REGEXP = /^"([^"]*)" is clicked$/;

  this.When(LINK_IS_CLICKED_STEP_REGEXP, function (someElementId, callback){});

  this.AfterStep(function (step) {
    if (LINK_IS_CLICKED_STEP_REGEXP.test(step.getName())) {
      clickCounter++;
    }
  });
}
相关问题