加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:39:53 所属栏目:百科 来源:网络整理
导读:RSpec提供了参数 regex匹配器,如下例所示: mock_smtp.should_receive(:send_message).with(anything,anything,/@just-testing.com/) 这很好,并允许我捕获与正则表达式匹配的参数,这适用于示例(匹配字符串,以’@ just-testing.com’结尾). 我的问题是我不能
RSpec提供了参数 regex匹配器,如下例所示:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读