Что именно вы хотите проверить?
Хотите ли вы проверить, действительно ли электронное письмо действительно отправлено?
Я не рекомендую его, поскольку оно замедлит ваш тест и это действительно зависит от машины, которую вы используете для запуска ваших тестов (сетевое соединение, SMTP-сервер).
Что я обычно делаю, так это проверяю, правильно ли выполняется действие контроллера / модели / грабли, отправляющее электронные письма (то есть, без ошибок, я заглушаю последний вызов отправки). Я также проверяю, правильно ли указаны тело, заголовок и получатели письма.
Редактировать:
Не имеет прямого отношения к тестированию, но я только что прочитал эту статью .
Мне нравится его точка зрения об использовании модели для отправки электронных писем. Итак, чтобы объяснить немного подробнее:
Я бы использовал контроллер для настройки переменных вида, таких как @body, @title, @recipient.
Поэтому я бы проверил, что при заданных правильных параметрах почтовый шаблон (который является представлением) корректно отображается. Это было бы ошибкой, с моей точки зрения.
Я обновлю этот пост примером, когда вернусь домой позже сегодня.
В Liquibase есть встроенный тег createProcedure для управления процедурами. Лучшим подходом обычно является объединение тегов или с runOnChange, чтобы Liquibase обновляла вашу процедуру тогда и только тогда, когда вы обновляете определение. Таким образом, вы можете делать различия между XML-файлами журнала изменений с течением времени и видеть, как изменилась процедура.
Использование тега sqlFile для ссылки на файл для каждого хранимого процесса также популярно, или, как вы сказали , вы можете использовать тег sql для встраивания пользовательского sql.
While I haven't used liquibase for stored procedures, I have some experience of Liquibase for more generic operations.
It is possible to write custom sql, either embedded in the xml file or referenced from an external file.