Я пытаюсь написать интеграционные тесты для службы 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», была вызвана, когда ожидалось.