如何使用 JavaScript 正确处理与黄瓜结合的开关盒?

How do I properly handle switch cases in combination with cucumber using JavaScript?

我正在尝试使用开关盒,以便使用 JavaScript 进行可重复使用的测试步骤。

然而,黄瓜提示我的步骤未定义,我不确定为什么。

问题特征步骤如下:

当我搜索名称为“characterSearch”的“人物”时

我的功能背后的代码如下:

When('I search for {string} with name {string}', async (type, name) => {
  switch(type) {
    case "planets":
      await searchFormPO.planetsRadioButton.click();
      break;
    case "people":
      await searchFormPO.peopleRadioButton.click();
      break;
    default:
      throw 'Please use planets or people as type input for this testcase.';
  }
  await searchFormPO.input.click;
  await searchFormPO.input.sendKeys(name);
  await searchFormPO.searchBtn.click();
});

我测试运行时出现的错误如下:

   Undefined. Implement with the following snippet:

     When('I search for {string}', function (string) {
       // Write code here that turns the phrase above into concrete actions
       return 'pending';
     });

它表明我的代码应该是一个函数,我已经试过了。 但是我的 JS 技能有点生疏,所以我可能会忽略一些东西。

我曾尝试使用黄瓜在 JS 中搜索 switch 案例,但无法google解决这个问题。

此代码工作正常,问题出在错误映射的旧功能文件中。