Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 呈现到电子邮件视图的文本未通过测试_Ruby On Rails_String_Email_Rspec - Fatal编程技术网

Ruby on rails 呈现到电子邮件视图的文本未通过测试

Ruby on rails 呈现到电子邮件视图的文本未通过测试,ruby-on-rails,string,email,rspec,Ruby On Rails,String,Email,Rspec,我正在尝试设置一封电子邮件,通知我Rails应用程序中发生的错误。我在测试中遇到了一个小错误,这或多或少是因为我无法正确地陈述我想要的东西。假设我的错误包括以下两行 2013-04-23 02:06:06 ERROR -- Errors for OUT6984-20130422-111427-1366647266.5769058.mp3: 2013-04-23 02:06:06 ERROR -- {:phone=>['is invalid']} 当我在电子邮件中写下这封信时,我的期望如下

我正在尝试设置一封电子邮件,通知我Rails应用程序中发生的错误。我在测试中遇到了一个小错误,这或多或少是因为我无法正确地陈述我想要的东西。假设我的错误包括以下两行

2013-04-23 02:06:06 ERROR -- Errors for OUT6984-20130422-111427-1366647266.5769058.mp3:
2013-04-23 02:06:06 ERROR -- {:phone=>['is invalid']}
当我在电子邮件中写下这封信时,我的期望如下:

it "contains the right content" do
  @email.should have_body_text("2013-04-23 02:04:56 ERROR -- Errors for OUT6984-20130422-101157-1366643517.5758441.mp3:")
  @email.should have_body_text("2013-04-23 02:04:56 ERROR -- {:phone=>['is invalid']}")
end
但是由于

expected the body to contain "2013-04-23 02:04:56 ERROR -- {:phone=>['is invalid']}" but was 
"<!DOCTYPE html> <html> <head> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> </head> <body> <h1>Errors for 20130423</h1> <br> <p>2013-04-23 02:04:56 ERROR -- Errors for OUT6984-20130422-101157-1366643517.5758441.mp3: 2013-04-23 02:04:56 ERROR -- {:phone=&gt;['is invalid']} </p> </body> </html> "
预期正文包含“2013-04-23 02:04:56错误--{:phone=>['is invalid']}”,但被删除
“20130423的错误--OUT6984-20130422-101157-1366643517.5758441.mp3:2013-04-23 02:04:56错误--{:phone=['is invalid']}


其中,最终哈希中的
字符被替换为
。我如何修复这个问题,或者以这样的方式重写测试以使其通过?测试正在做我希望它做的事情,就像代码一样。我只是不知道如何告诉它这就是我想要的。

我不确定@email实例变量的定义是什么,而是

@email.should have_body_text
试用

mail.body.encoded.should match
并检查输出