Grailsサービスの統合テストを作成しようとしています。特に、Mail Pluginという優れたメールを送信しています。私は設定を介して電子メールの実際の送信を無効にすることができますが、これは素晴らしいですが、パラメータが正しいボディが正しくレンダリングされていることを確認したい、または少なくとも私が期待したときにメソッドが呼び出されたことを確認したいと思います。ドキュメンテーションによれば、身体のGSPへの完全な経路が提供されなければならない。メールプラグインを使用するGrailsサービスでの統合テストのメール本文
私のテストでは、このようなことをしたいと思います。送信後に電子メールの本文やその他のパラメータにプログラムでアクセスする方法はありますか?
sendMail {
to myemailparams.to
subject myemailparams.subject
body(view:"/emailviews/someemailview",
model:[contentparam: myemailparams.somecontentvalue)
}
//verify correct sending to and subject parameters, and that body contains correct contentvalue
//or at least that the method has been called (Mock it out?)
注意メール本文のレンダリングのテストを、メールプラグインを含まない個別の独立したテストにカプセル化することができます。しかし、この統合テストの目的は、電子メール送信を含む多くのことがサービスメソッドの呼び出し時に正しく行われるようにすることです。私はサービスを模擬する方法を説明する答えに満足していて、「sendMail」が期待どおりに呼び出されたことを確認する小切手があります。
これはとても便利です。私はクロージャの変数が私のテストのクロージャの外側に見えるようには考えていませんでした。よく働く。 – Peter