Cucumber 文本中带引号的黄瓜场景

Cucumber 文本中带引号的黄瓜场景,cucumber,Cucumber,我想在我的场景数据中加上引号。当数据中有引号时,它就不起作用了。从Cucumber书中修改的示例如下: Then I should see the "<message>" message Examples: | type | message | | Swiss | I love Swiss cheese | | Blue | I love "Blue" cheese | | Cheddar | I love Cheddar cheese | 那么我应该看到“”消息 示例

我想在我的场景数据中加上引号。当数据中有引号时,它就不起作用了。从Cucumber书中修改的示例如下:

Then I should see the "<message>" message

 Examples:
 | type | message |
 | Swiss | I love Swiss cheese |
 | Blue | I love "Blue" cheese |
 | Cheddar | I love Cheddar cheese |
那么我应该看到“”消息
示例:
|类型|消息|
|瑞士|我喜欢瑞士奶酪|
|蓝色|我喜欢“蓝色”奶酪|
|切达干酪|我喜欢切达干酪|

在我的特殊情况下,由于上面第二个场景中的“蓝色”,我得到了一条未定义的步骤定义消息。我有没有办法避开这些引语?(我尝试过反斜杠,但没有任何区别。)

我猜您当前的步骤定义如下:

Then /I should see the "([^"]+)" message/ do |message|
    p message
end
[^”]
告诉正则表达式匹配除双引号以外的任何内容。这就是为什么“蓝色”示例不匹配的原因

考虑到您只寻找一个参数,可以安全地执行以下操作:

Then /I should see the "(.*)" message/ do |message|
    p message
end

使用
(.*)
将匹配引号之间的所有内容,包括蓝色引号。

我猜您当前的步骤定义如下所示:

Then /I should see the "([^"]+)" message/ do |message|
    p message
end
[^”]
告诉正则表达式匹配除双引号以外的任何内容。这就是为什么您的“蓝色”示例不匹配的原因

考虑到您只寻找一个参数,可以安全地执行以下操作:

Then /I should see the "(.*)" message/ do |message|
    p message
end

使用
(.*)
将匹配引号之间的所有内容,包括蓝色引号。

谢谢,您对步骤定义的观察非常准确。谢谢,您对步骤定义的观察非常准确。