【发布时间】:2012-02-11 15:22:36
【问题描述】:
我正在尝试为 Grails 服务编写集成测试,其中包括通过出色的 Mail Plugin 发送电子邮件。我可以通过配置禁用电子邮件的实际发送,这很好,但我想验证参数是否正确,正文是否正确呈现,或者至少在我期望的时候调用了该方法。根据文档,必须提供正文的 GSP 完整路径。
作为我测试的一部分,我想做这样的事情 - 有没有办法在发送后以编程方式访问电子邮件正文和其他参数?
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”的检查。
【问题讨论】:
标签: grails mocking integration-testing