Cucumberjs 数据表 - 如何将其转换为 .raw()

Cucumberjs Data Tables - How to turn it to .raw()

所以我已经实现了一个 Cucumberjs 数据 table,但是我认为我做的不对..这就是我所拥有的

this.And(/^If I click the row "([^"]*)" then I should the following nested information$/, function (rowName, data) {
        resultPage.clickRow(rowName);
        data = dataTable.raw();
        return console.log(data);
    });

我的小黄瓜步骤看起来像

Then If I click the row "Summary" then I should the following nested information
      | Tax       | 11.50
      | Gratuity  | 4.50
      | Total     | 26.59

现在我正试图获取此 table 并将其打印出来以确保它以正确的格式返回,但我遇到了词法分析错误并且测试甚至无法开始。你怎么能在 Javascript 中实现这个?我似乎无法在网上找到有关 cucumberjs 的任何文档或示例,但当然有几个 java/cucumber.

此外,据我所知,词法分析错误与以下事实有关:它期望这是一个场景大纲,而且我没有在 table 之前指定示例:。但是,这不应该是场景大纲。这应该是一个数据 table..

这个问题的答案其实和原问题相差不远。我错过了额外的“|”在 table.

的右侧
Then If I click the row "Summary" then I should the following nested information
      | Tax       | 11.50  |
      | Gratuity  | 4.50   |
      | Total     | 26.59  |

另外,确保java脚本步骤定义包含按使用顺序排列的参数。所以在这种情况下,问题中使用的相同步骤定义是正确的

this.And(/^If I click the row "([^"]*)" then I should the following nested information$/, function (rowName, data) {
        resultPage.clickRow(rowName);
        data = dataTable.raw();
        return console.log(data);
    }); 

与我看到的黄瓜示例相比,这出奇地简单 / java。 Cucumberjs 确实需要改进他们的文档..

您可以通过一些内置方法检查 table 的数据。

(table.rows(),table.hashes(),table.rowsHash())

您可以在 (https://github.com/cucumber/cucumber-js/blob/master/features/data_tables.feature)

找到上述方法的实现