Вместо процедуры я предлагаю использовать функцию: Код:
DELIMITER $
DROP FUNCTION IF EXISTS test_f$
CREATE FUNCTION test_f(a varchar(22),b double(9,2)) returns varchar(64)
BEGIN
SET @RET = (select concat(a,b));
return @RET;
END$
DELIMITER ;
mysql> select test_f(',123);
+-----------------+
| test_f(',123) |
+-----------------+
| $123.00 |
+-----------------+
1 row in set (0.10 sec)
mysql>
Papercut является идеальным пригодным для того, что Вы ищете. Это было общедоступно в течение последних месяцев. Я использовал его в течение месяца. Не могло стать немного легче протестировать почтовую функциональность.
Довольно просто настроить псевдоним, который поставляется файлу вместо через любой механизм доставки в любом из главных почтовых серверов Unix/Linux как Postfix или Sendmail. Во время тестирования можно выследить тот файл, чтобы видеть, что почта добирается, отправляют, когда Вы ожидаете это к. После того, как Ваше тестирование закончено, можно перенаправить его туда, где когда-либо оно, как действительно предполагается, идет.
В зависимости от того, каков Ваш почтовый механизм, другая альтернатива должна была бы сделать testmail. (py, php, sh) сценарий, который записывает все обеспеченные аргументы и выводит их в таблицу тега с метками времени события. Это не изящно, но сделало бы для отладки. Обманите все зависит от того, как Вы посылаете электронное письмо.
В том же направлении, если Вы используете smtp и не sendmail, запись приложение гетто, которое слушает на некотором номере порта высокого диапазона и просто молча отвечает назад правильными значениями.
Ваш вопрос не описал среду, но если Вы используете язык OO (например, Java), Вы могли бы использовать внедрение зависимости. Запишите a MessageSender
интерфейс с двумя реализациями; один (EmailMessageSender
) на самом деле посылает электронные письма, в то время как другой (FileMessageSender
) получает сообщение в строке.
Запишите и протестируйте EmailMessageSender
в изоляции; после того как это проверяется, поместите его на полку.
Запишите другие части системы против MessageSender
и протестируйте их использующий (введенный) экземпляр FileMessageSender
. (Если FileMessageSender
также позволяет извлечение "отправленного сообщения" содержание, затем можно использовать его в поблочном тестировании.)
После того как Вы проверили остальную часть системы, разверните ее использование (снова через инжекцию) правильно настроенный экземпляр EmailMessageSender
.
Почему не просто выложенный почтовая рассылка к текстовому файлу и разъединению какие-либо вызовы к почтовому серверу?