Как мне проверить приложение Mailman

Я пытаюсь написать некоторые спецификации для своего приложения, предназначенные для обработки и повторной отправки входящих писем. Он построен с приложением Mailman. Я не нашел хороших примеров того, как это сделать. На самом деле я пытаюсь создать электронную почту (с помощью Mail gem) и обработать ее с помощью Mailman. Но есть только вариант использования stding для тестирования.

Итак, есть ли примеры спецификаций, написанных для тестирования приложений почтальона?

1 ответ

Я думаю, что полезно извлечь как можно больше из вашего Mailman::Application заблокировать и положить его в свое приложение где-нибудь. Затем проверьте эту обработку.

Этот Railscast (pro-only, извините) имеет довольно неплохой пример "Альтернативы маршрутизации".

В основном вместо того, чтобы делать что-то вроде:

Mailman::Application.run do
  subject(/Update (\d+)/) do |ticket_id|
    ...

Вы просто говорите:

Mailman::Application.run do
  default do
    MailProcessor.receive_mail(message)
  end
end

Тогда MailProcessor Класс будет обрабатывать чтение сообщения и вызывать правильные другие функции в вашем приложении (в зависимости от темы сообщения, получателя, отправителя и т. д.). Затем я проверю RSpec MailProcessor класс для правильных поступков.

Это похоже на то, как я подхожу к тестированию задач rake (поместите функциональность в тестируемый вами файл lib, а задача rake просто вызовите файл lib.) Тогда вы можете быть совершенно уверены, что функциональность тестируется правильно. Если вы были параноиком по поводу задачи с граблями, вы можете попробовать такой подход, как: http://robots.thoughtbot.com/post/11957424161/test-rake-tasks-like-a-boss.

Другие вопросы по тегам