黄瓜情景大纲与特殊字符

时间:2015-03-06 15:59:58

标签: ruby unicode cucumber

我目前正在尝试测试一个应该正确替换特定Unicode范围内某些特殊字符的服务,包括表情符号,交通图标,表情符号和dingbats。我一直在使用Cucumber和Ruby进行测试,而我的最新场景大纲将不起作用。我已经尝试查找从示例表中获取角色的其他方法,但是我似乎无法使其工作,并且黄瓜打印输出只是抱怨没有定义给定步骤。

以下是我的功能方案:

Scenario Outline: I update a coupon with a name including emojis/emoticons/dingbats/symbols
Given I have a name variable with a <character> included
When I patch my coupon with this variable
Then the patch should succeed
And the name should include replacement characters

Examples:
| character |
|         |
|         |
|         |
|         |
| ☀         |
| ☂         |
| ✋        |
| ✂         |
| ⨕         |
|          |
|         |

这是我对Given的步骤定义(这是抱怨它没有定义的步骤)

Given(/^I have a name variable with a (\w+) included$/) do |char|
  @name = 'min length ' + char
  @json = { 'name' => @name }.to_json
end

我尝试使用一些正则表达式来捕获角色,以及(\ w +)和(\ d +),虽然我找不到有关如何捕获特殊字符的信息。我可以写出11个不同的步骤定义,但这样做会很糟糕,这会让我疯狂。

1 个答案:

答案 0 :(得分:2)

除非你的特价中有空格,否则使用非空格 \S是安全的:

Given(/^I have a name variable with a (\S+) included$/) do |char|
   ...

\w无法为您提供所需的结果,因为\w已解析为[a-zA-Z0-9_]