gpt4 book ai didi

ruby-on-rails - cucumber :填写一个带有双引号的字段

转载 作者:行者123 更新时间:2023-12-04 03:47:22 25 4
gpt4 key购买 nike

我有一些 rails 应用程序,一个带有字段的 View ,可以说它叫做“some_field”
我想填写“SOME_STRING_WITH_QUOTES”字段

我怎样才能在 cucumber 中做到这一点?

When I fill in "some_field" with ""SOME_STRING""

When I fill in "some_field" with "\"SOME_STRING\""

不工作( cucumber 解析器似乎不批准)
该怎么办?它不是某种匹配器,因此正则表达式也不起作用

最佳答案

当您在 Cucumber 场景中编写一个步骤时,Cucumber 会建议您使用标准正则表达式来匹配双引号内的文本(正则表达式 [^"]* 表示任何类型的 0 个或多个字符的序列,“字符”除外)。因此,对于 When I fill in "some_field" with: "SOME_STRING" 它将建议以下步骤定义:

When /^I fill in "([^"]*)" with: "([^"]*)"$/ do |arg1, arg2|
pending # express the regexp above with the code you wish you had
end

但是您不会被迫使用这个正则表达式并且可以自由地编写您想要的任何匹配器。例如,以下匹配器将匹配冒号之后并在行尾结束的任何字符串(并且该字符串可能包含引号):
When /^I fill in "([^"]*)" with: (.*)$/ do |field, value|
pending # express the regexp above with the code you wish you had
end

然后您的场景步骤将如下所示:
When I fill in "some_field" with: "all " this ' text will ' be matched.

更新

您还可以在场景步骤中使用 Cucumber 的 Multiline String:
When I fill in "some_field" with: 
"""
your text " with double quotes
"""

然后您将不需要更改由 Cucumber 生成的步骤定义:
When /^I fill in "([^"]*)" with:$/ do |arg1, string|
pending # express the regexp above with the code you wish you had
end

带引号的字符串将作为最后一个参数传递。在我看来,这种方法看起来比第一种方法重。

关于ruby-on-rails - cucumber :填写一个带有双引号的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8533943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com