如何在列表(列)而不是行中读取黄瓜 table

How to read cucumber table in a list (column) instead of row

在 Cucumber 功能中,我们可以使用 table 来收集如下数据

    Then I receive the following errors
        | 10 |
        | 11 |
        | 12 |

然后我的步骤如下

Then(/I receive the following errors$/) do |table|
  data = table.raw
  data.each do |entry|
    status = entry[0]
      # : Do whatever I like
  end
end

但是,鉴于它只是一个数据列表,我打算将其改为这种特征格式

    Then I receive the following errors
        | 10 | 11 | 12 |

我不知道这个列表会有多长。我应该如何编写步骤定义以遍历 table-列表?

谢谢。

找到解决方案,可以同时满足行和列。

data = table.raw
data.each do |rowdata|
  rowdata.each do |entry|
    status = entry
      # : Do whatever I like
  end
end

我会使用逗号分隔的列表。 然后我收到以下错误

"""
10, 11, 12, 14
"""

使用此代码

Then(^I recieve the following error$) |errors|
  list = errors.split(/,\s/)

将具有一列的 DataTable 转换为值列表的另一种方法。

Then I receive the following errors
  | 10 |
  | 11 |
  | 12 |

Then(/^I receive the following errors$/) do |table|

    expected = table.cells_rows.map {|row| row(0)} # => [10, 11, 12]

    # do assertions ...
end

cells_rows 将 return 行集合(Cells 类型),其中可以通过索引访问单元格。如果只有一列,索引将始终为 0