【问题标题】:capture trailing whitespace in gherkin tables捕获小黄瓜表中的尾随空格
【发布时间】:2014-01-06 01:48:51
【问题描述】:

假设我有两个这样的场景:

Scenario: scenario 1
  Given foo
  When "meh"
  Then the output should be "hello"

Scenario: scenario 2
  Given foo
  When "blah"
  Then the output should be "hello "

我尝试将它们转换为这样的场景大纲

Scenario Outline:
  Given foo
  When <bar>
  Then the output should be <output_string>
  Examples:
  | bar | output_string |
  | meh | hello         |
  | blah| hello         |

事情失败了,因为小黄瓜表格单元格在处理之前已经修剪了它们的空白。有什么方法可以捕获第二个示例中“hello”的尾随空格?

【问题讨论】:

    标签: ruby cucumber bdd gherkin


    【解决方案1】:

    将单元格数据放在单引号(或您喜欢的分隔符)中,并添加一个 Transform 以去除分隔符。

    foo.feature:

    Scenario Outline:
    Given foo
    When <bar>
    Then the output should be <output_string>
    Examples:
    | bar | output_string |
    | meh | 'hello'       |
    | blah| 'hello '      |
    

    features/support/quoted_string_transform.rb:

    Transform /^'(.*)'$/ do |quoted_string|
      quoted_string
    end
    

    转换将应用于所有匹配的捕获,因此请相应地选择分隔符。

    【讨论】:

      【解决方案2】:

      我相信解决方案是将单元格数据放在引号中:

      Scenario Outline:
      Given foo
      When <bar>
      Then the output should be <output_string>
      Examples:
      | bar | output_string |
      | meh | "hello"       |
      | blah| "hello "      |
      

      【讨论】:

      • 不起作用 - 双引号被捕获为单元格值的一部分。 PS:我原来的帖子在初始场景中有一个 变量,这没有意义。我怀疑这让你转置了我的表格 - bar 和 output_string 是占位符变量,而不是 bar、meh 和 blah。我已经编辑了我的问题来解决这个问题。
      • 引号可能不是什么大问题。 stackoverflow.com/questions/3453262/…
      • 不要粗鲁,但教我如何进行基本的字符串处理并不是我在这里所追求的(我的例子被简化了 - 我正在尝试使用 aruba 步骤,并没有真正除非我必须这样做,否则我想用笨拙的变通方法编写我自己的步骤)。理想情况下,应该有一种方法可以避开 cuke 表中的前导/尾随空格,以表明它不会被切断。我希望有人在尝试破解它之前确认它不存在。
      • 查看行解析器规范 (github.com/bryanl/gherkin/blob/master/spec/gherkin/shared/…),似乎没有办法做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多