2012-11-06 1 views
3

수신 이메일을 처리하고 다시 보내려는 애플리케이션을위한 몇 가지 사양을 작성하려고합니다. Mailman App으로 제작되었습니다. 나는 그 일을하는 좋은 방법을 찾지 못했습니다. 내가 실제로 시도하는 것은 Mailman을 사용하여 이메일을 작성하고 Mailman과 처리하는 것입니다. 그러나 테스트를 위해 stding을 사용하는 옵션 만 있습니다.Mailman 앱을 테스트하려면 어떻게해야합니까?

mailman 앱을 테스트하기 위해 작성된 사양의 예가 있습니까?

답변

0

최대한 Mailman::Application 블록에서 추출하여 어딘가에 넣어 두는 것이 유용하다고 생각합니다. 그런 다음 해당 처리를 테스트하십시오.

This Railscast (pro-only, sorry)에는 "라우팅 대체"의 예가 있습니다. 기본적으로 대신 같은 일을의

:

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과 같은 접근 방식을 시도 할 수 있습니다.