我经常使用Cucumber作为解决方案。在翻译和共享理解方面,我正在尝试将Cucumber用于具有独特需求的团队。问题的关键在于,有些人不能使用详细的,字面的,有关正在测试的内容的信息(我称之为混凝土),其他人需要分享对混凝土的理解等。
我想在步骤定义中创建Cucumber::Ast::Table
。我认为社区可能会受益于@current_table = Cucumber::Ast::Table.new
期望在其初始化程序中存在一个参数。
Given(/^an example step that has very well written english but can be misinterpreted and may not be concrete enough for some team members$/) do
@current_table = Cucumber::Ast::Table.new('''
| concrete1 | concrete2 |
| value1 | value2 |
''')
end
未定义的方法`transpose'代表“\ n | this | that | \ n | 1 | 2 | \ n”:String
答案 0 :(得分:3)
您似乎可以使用parse
方法:
Given(/^an example step that has very well written english but can be misinterpreted and may not be concrete enough for some team members$/) do
@current_table = Cucumber::Ast::Table.parse('''
| concrete1 | concrete2 |
| value1 | value2 |
''', nil, nil)
p @current_table.class
#=> Cucumber::Ast::Table
p @current_table.raw
#=> [["concrete1", "concrete2"], ["value1", "value2"]]
end
我不确定解析方法的最后两个参数是用于什么的,但是对于一个简单的情况,使用nil似乎工作正常。
答案 1 :(得分:0)
http://cukes.info/api/cucumber/ruby/yardoc/Cucumber/Ast/Table.html#initialize-instance_method
声称:: new方法需要一个数组数组。在另一个页面上,我读到它也可能支持array of hashes。但不确定。