【问题标题】:unorthodox cucumber...creating a Cucumber::Ast::Table in a step definition非正统黄瓜...在步骤定义中创建一个 Cucumber::Ast::Table
【发布时间】:2014-05-10 05:04:42
【问题描述】:

上下文:

我经常使用 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

因为它失败了这个错误:

“\n|this|that|\n|1|2|\n”的未定义方法 `transpose':String

【问题讨论】:

    标签: ruby cucumber


    【解决方案1】:

    看来您可以使用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
    

    我不确定 parse 方法的最后 2 个参数用于什么,但对于简单的情况,使用 nil 似乎可以正常工作。

    【讨论】:

    • 谢谢。这很有帮助,贾斯汀。
    【解决方案2】:

    http://cukes.info/api/cucumber/ruby/yardoc/Cucumber/Ast/Table.html#initialize-instance_method

    ::new 方法声称需要一个数组数组。在我读到的另一页上,它也可能支持array of hashes。但不确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      相关资源
      最近更新 更多