0

padrino アプリケーションを実行しており、付属のメーラーから始めました。メールが送信されたことをテストしたいのですが、これまで Mail::TestMailer オブジェクトにアクセスして、テスト中に配信されたメールを確認するのに問題はありませんでした。

それが私がやっていることの背景ですが、正確には問題ではありません。モジュールをランタイム環境で使用できるようにする方法を知りたいです。このテストには 2 つのバージョンがあります

最初

def test_mailer
  Mail::TestMailer.deliveries.clear
  get '/owners/test'
  e =  Mail::TestMailer.deliveries.pop
  puts e.to.to_s
end

2番目

def test_mailer
  get '/owners/test'
  Mail::TestMailer.deliveries.clear
  e =  Mail::TestMailer.deliveries.pop
  puts e.to.to_s
end

2 番目のバージョンでは、このテストは失敗し、次のエラー メッセージが表示NoMethodError: undefined method to' for nil:NilClassされます。メッセージをクリアしてから、nil である必要がある最後のメッセージを要求します。ただし、最初のバージョンでテストを実行すると、エラーはNameError: uninitialized constant OwnersControllerTest::Mail

どういうわけか get メソッドがMailオブジェクト/モジュールを利用可能にしています。どうすればこれができるのかわかりません。これがラックテストなのかパドリーノなのか分からないので、ここにどのような追加情報をコピーすればよいかわかりません.

4

1 に答える 1

0

require 'mail'テスト ヘルパーに追加します。

問題はここで説明されています: https://github.com/padrino/padrino-framework/issues/1797

于 2014-10-28T08:06:33.087 に答える