【发布时间】:2014-04-01 18:25:13
【问题描述】:
我正在尝试测试通过 prawn gem 生成并附加到 ActionMailer 电子邮件的 pdf 文档中的特定内容。我正在使用 RSpec 和 Capybara 进行测试。
我已经设法像这样测试文件名
expect(ActionMailer::Base.deliveries[0].filename).to eq("my_file.pdf")
我以为我在某处读过我必须像这样测试 pdf 本身,但它不起作用。 `expect(ActionMailer::Base.deliveries[0].body.encoded).to have_content(user.first_name)`
运行测试时,出现以下错误:
Failure/Error: expect(ActionMailer::Base.deliveries[0].body.encoded).to have_content(user.first_name)
expected to find text "John" in "JVBERi0xLjQKJf////8KMSAwIG9iago8PCAvQ3JlYXRvciA8ZmVmZjAwNTAw MDcyMDA2MTAwNzcwMDZlPgovUHJvZHVjZXIgPGZlZmYwMDUwMDA3MjAwNjEw MDc3MDA2ZT4KPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cK L1BhZ2VzIDMgMCBSCj4+CmVuZG9iagozIDAgb2JqCjw8IC9UeXBlIC9QYWdl cwovQ291bnQgMQovS2lkcyBbNSAwIFJdCj4+CmVuZG9iago0IDAgb2JqCjw8 IC9MZW5ndGggMzE2NAo+PgpzdHJlYW0KcQpxCi9UcjEgZ3MKMjA2LjAwMCA2 NTYuMDAwIDIwMC4wMDAgMTAwLjAwMCByZQpTClEKCnEKNDAwLjAwMCAwIDAg NTAuMDAwIDEwNi4wMDAgNzA2LjAwMCBjbQovSTEgRG8KUQpxCi9UcjEgZ3MK MjA2LjAwMCA2NTYuMDAwIDIwMC4wMDAgMTAwLjAwMCByZQpTClEKCkJUCjIx OC40ODI1NTg1OTM3NSA2NDIuODk2IFRkCi9GMS4wIDE4IFRmCls8NTQ+IDEx MC44Mzk4NDM3NSA8NjU2OTZjNmU2MTY4NmQ2NTYyNjU3Mzc0OGE3NDY5Njc3 NTZlNjc+XSBUSgpFVAoKCkJUCjM2IDYyMy4zMjk5OTk5OTk5OTk5IFRkCkVU CgoKQlQKMzYgNjAzLjc2Mzk5OTk5OTk5OTkgVGQKRVQKCgpCVAoyNDguODUy
这段文字持续了很长时间。
也许只有我一个人,但这对我来说并不完全是“可测试的”。有人知道这样做吗?谢谢!
【问题讨论】:
-
您正试图在加密字符串中查找非加密字符串“John”。使用与字符串相同的过程来加密“John”,或者不要在测试环境中加密您的电子邮件。 (通过密码我的意思是编码)
标签: ruby-on-rails pdf rspec capybara actionmailer