2013-08-03 3 views
0

내 응용 프로그램은 smtpapi 대체를 사용하여 N 명의 이름과 전자 메일 주소가 포함 된 smtpapi 헤더가 포함 된 단일 전자 메일을 보냅니다. 그런 다음 Sendgrid가 '편지 병합'을 수행하고 N 개의 전자 메일을 보냅니다.rails & rspec; smtpapi 배치 대체 테스트 방법

내 Rspec 사양은 나가는 전자 메일에 N 명의 사람에 대한 올바른 smtpapi 헤더가 있는지 테스트 할 수 있습니다. 이론적으로 N 개의 전자 메일이 전송된다는 것을 의미합니다.

Rspec에서 테스트를 다음 단계로 진행할 수있는 방법이 있습니까? 실제로 시뮬레이트 된 send with smtpapi 대체를 수행하여 내 사양에서 N 개의 전자 메일이 '전송 됨'을 확인할 수 있도록하고 각 전자 메일에 올바른 정보가 포함되어 있는지 확인하십시오. 간단한 예로서 N 'sent'이메일을 확인하고 N 개의 이메일 각각에 사용자 이름과 이메일이 올바르게 편지로 합쳐 졌는지 확인하십시오.

답변

1

내 의견으로는이 질문은 실제로 RSpec 질문이 아닙니다. Ruby를 테스트하는 것에 대해 이야기하고 있지 않기 때문입니다. 여러분이 지적한대로, 편지 병합과 실제 메일 링은 sendgrid 내에서 일어나고 있으며, 이들 프로세스에 대한 sendgrid 훅은 없습니다. Ruby 인터페이스는 말할 것도 없습니다. 내가 생각할 수있는 유일한 방법은 수신자가 실제 영수증을 수신자로 테스트하는 것입니다.

+0

SMS 메시징을 테스트 할 때도 적용되지만, Rspec을 허용하는 매우 유용한 보석이 있습니다. SMS 메시지 테스트 아마도 누군가가 이메일을 똑똑하게 처리했습니다. – jpwynn

+0

만약 OP가 Ruby/Rails 메일 인터페이스와의 상호 작용을 테스트하는 것에 관한 이야기라면, 나는 당신에게 동의 할 것입니다. 특히 https://github.com/bmabey/email-spec이 있습니다. 그러나이 경우 OP는 명시 적으로 sendgrid의 기능입니다. sendgrid가 해당 인터페이스 *를 sendgrid로 테스트 할 수 있지만 sendgrid가 지시 사항을 올바르게 해석하고 올바른 수신자에게 메일을 전달하려고 시도했는지 테스트하려면 sendgrid의 도움을 받아야합니다. –

+0

Sendgrid는 우발적입니다. smtpapi 대체 후 아웃 바운드 전자 메일이 어떻게 보이는지 테스트하고 싶습니다. 나는 Sendgrid 그 자체를 시험하려고하지는 않는다. (누가 그 능력을 제공하는 그런 벤더 일까?) ActionMailer 이메일 객체가 주어지면 smtpapi 대체가 적용된 원본 이메일을 반영하는 N 개의 이메일 배열을 만들 수있는 테스트 보석 (또는 smtpapi 대체 보석)이 존재할 수도 있습니다. – jpwynn