gpt4 book ai didi

ruby - 如何在某些类型的参数上使用 RSpec 正则表达式参数匹配

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:16 24 4
gpt4 key购买 nike

RSpec 提供参数正则表达式匹配器,如下例所示:

mock_smtp.should_receive(:send_message).with(anything, anything, /@just-testing.com/)

这很好,并且允许我捕获与正则表达式匹配的参数,这对于示例来说效果很好(匹配一个字符串,以“@just-testing.com”结尾)。

我的问题是我无法让它为这种类型的参数工作:

    msgstr = <<END_OF_MESSAGE
From: me <#{from_email}>
To: #{to_name} <#{to_email}>
Subject: #{subject}
MIME-Version: 1.0
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">...</html>
END_OF_MESSAGE

正则表达式无法捕获 msgstr 变量中的任何内容。

如何测试 msgstr 变量中的值?

最佳答案

不确定您遇到什么问题,但以下工作正常:

from_email = to_email = subject = to_name = "foobar@just-testing.com"

msgstr = <<END_OF_MESSAGE
From: me <#{from_email}>
To: #{to_name} <#{to_email}>
Subject: #{subject}
MIME-Version: 1.0
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">...</html>
END_OF_MESSAGE

def foo(arg)
end

describe "" do
it "" do
expect(self).to receive(:foo).with(/@just-testing.com/)
foo(msgstr)
end
end

关于ruby - 如何在某些类型的参数上使用 RSpec 正则表达式参数匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591235/

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