Тестирование ActionMailer получает метод (направляющие)

Существует хорошая документация там относительно тестирования ActionMailer, отправляют методы, которые поставляют почту.

Но я не могу выяснить, как протестировать a receive метод, который используется для парсинга входящей корреспонденции.

Я хочу сделать что-то вроде этого:

require 'test_helper'
class ReceiverTest < ActionMailer::TestCase

  test "parse incoming mail" do
    email = TMail::Mail.parse(File.open("test/fixtures/emails/example1.txt",'r').read)
    assert_difference "ProcessedMail.count" do
      Receiver.receive email
    end
  end
end

Но я получаю следующую ошибку на строке, которая называет Receiver.receive

NoMethodError: undefined method `index' for #<TMail::Mail:0x102c4a6f0>
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/stringio.rb:128:in `gets'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/mail.rb:392:in `parse_header'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/mail.rb:139:in `initialize'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/stringio.rb:43:in `open'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/port.rb:340:in `ropen'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/mail.rb:138:in `initialize'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/mail.rb:123:in `new'
/Library/Ruby/Gems/1.8/gems/tmail-1.2.7.1/lib/tmail/mail.rb:123:in `parse'
/Library/Ruby/Gems/1.8/gems/actionmailer-2.3.4/lib/action_mailer/base.rb:417:in `receive'

Tmail анализирует тестовый файл, который я имею правильно. Таким образом, это не это.Спасибо!

1
задан Brian Armstrong 7 May 2010 в 07:43
поделиться

1 ответ

Разобрался. Передавал объект TMail методу "приема". Вместо этого он должен принимать обычную старую строку (выполняет синтаксический анализ объекта TMail самостоятельно).

2
ответ дан 3 September 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: