Yaml中的Ruby正则表达式

Yaml中的Ruby正则表达式,ruby,cucumber,yaml,Ruby,Cucumber,Yaml,我是YAML的新手,我正在尝试编写一些语言翻译测试。我的想法是,我有一个YAML文件,其中有相同文本的英语和威尔士版本。我想知道如何在YAML中的字符串中使用正则表达式来执行以下操作 例如: 我有一个基本的测试: #Gherkin And I expect to see payment confirmation for "Dave" #Step Def And /^I expect to see payment confirmation for "(.*?)"$/ do |user|

我是YAML的新手,我正在尝试编写一些语言翻译测试。我的想法是,我有一个YAML文件,其中有相同文本的英语和威尔士版本。我想知道如何在YAML中的字符串中使用正则表达式来执行以下操作

例如:

我有一个基本的测试:

#Gherkin
And I expect to see payment confirmation for "Dave"

#Step Def
    And /^I expect to see payment confirmation for "(.*?)"$/ do |user|
      expect(page).to have_text "Payment successful for #{user} - Reference: 000000"
end
YAML条目:

"Payment successful for Dave reference: 000000"
 - welsh: "Taliad llwyddiannus ar gyfer Dave Cyfeirnod: 000000"
我能否在YAML条目中参数化Dave,因为测试套件覆盖了数百个用户


谢谢

如果要将文本插入YAML,则需要将要插入的单词替换为
%{keyword}
,其中关键字是一个键,用于指示要插入的数据

如果使用Rails,您将使用中概述的
t
helper方法

如果想要纯ruby实现,可以使用
Kernel::format
方法

# The YAML file
# NOTE: This can be in any format, as long as you use %{keyword} in places where you want the data to be interpolated
translations:
  english: "Payment successful for %{first_name} reference: %{reference_number}"
  welsh: "Taliad llwyddiannus ar gyfer %{first_name} Cyfeirnod: %{reference_number}"

# Ruby
translations = YAML.load(File.read('translations.yaml'))
string = format(translations[:translations][:welsh], first_name: 'Dave', reference_number: '000000')

希望这有帮助。

如果您想在YAML中插入文本,您需要将要插入的单词替换为
%{keyword}
,其中关键字是一个键,用于指示要插入的数据

如果使用Rails,您将使用中概述的
t
helper方法

如果想要纯ruby实现,可以使用
Kernel::format
方法

# The YAML file
# NOTE: This can be in any format, as long as you use %{keyword} in places where you want the data to be interpolated
translations:
  english: "Payment successful for %{first_name} reference: %{reference_number}"
  welsh: "Taliad llwyddiannus ar gyfer %{first_name} Cyfeirnod: %{reference_number}"

# Ruby
translations = YAML.load(File.read('translations.yaml'))
string = format(translations[:translations][:welsh], first_name: 'Dave', reference_number: '000000')

希望这能有所帮助。

你能更好地解释一下你想要什么吗?我不确定您是否要更改测试以适应所有可能的YAML条目,或者创建一个可以在其中插入文本的YAML。另外,代码示例似乎不是有效的RSpec语法,您是否也可以更新它?如果可能,我希望在YAML中插入文本。在Capybara中使用RSpec期望值,这就是页面上简单文本断言的语法。您能更好地解释一下您想要什么吗?我不确定您是否要更改测试以适应所有可能的YAML条目,或者创建一个可以在其中插入文本的YAML。另外,代码示例似乎不是有效的RSpec语法,您是否也可以更新它?如果可能,我希望在YAML中插入文本。在Capybara中使用RSpec期望,这就是页面上简单文本断言的语法。