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