我正在嘗試爲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 2012-03-14 22:45:19