2009-11-16 60 views
26

使用rspec與Rails測試電子郵件發送的最佳實踐和工具是什麼?如何使用Rspec測試電子郵件發送?

例如,如何測試已發送電子郵件或測試哪些應具有高效的測試和可接受的覆蓋範圍。

如果你們需要一個例子,我將如何去測試:

class UserMailer < ActionMailer::Base 

def jobdesc_has_been_reviewed(user, title) 
    @body[:title] = title 
    @body[:jobdesc] = jobdesc 
    @body[:url] = "http://" + user.account.subdomain + "." + Constants::SITE_URL + "/jobdescs/#{jobdesc.id}" 
end 

end 

回答

24

電子郵件規格看起來像一個好的圖書館

http://github.com/bmabey/email-spec

+0

Thansk!你試過了嗎? – marcgg 2009-11-16 14:54:18

+0

不,我沒有嘗試過,但是這個庫封裝了我使用的技術。 – nicholaides 2009-11-16 16:04:04

+0

我已經使用RSpec和Cucumber的電子郵件規範,它看起來正是你在找什麼。 – 2009-11-16 17:23:22

0

那你想測試到底是什麼?

你想測試電子郵件確實是真的發送?

我不推薦使用它,因爲它會讓你的測試變得更慢,這實際上取決於你用來運行測試的機器(網絡連接,smtp服務器)。

我通常會做的是確保發送電子郵件的控制器動作/模型/耙子任務正確運行(意思是沒有錯誤,我存根最後的發送呼叫)。 我也確認郵件正文,標題和收件人是正確的。

編輯:

不直接相關的測試,但我只是過來這article

我喜歡使用模型發送電子郵件的觀點。 所以要詳細解釋一下:

我會使用控制器來設置視圖變量,如 @body,@title,@recipient。

所以我會測試,給出正確的參數郵件模板(這是一個視圖)被正確呈現。 這是錯誤可能發生在我的角度。

我會在今天晚些時候回到家後用示例更新這篇文章。

+0

我真的不知道我要考......我在尋找一個正確的範圍是什麼(假設檢驗,如果有郵件已發送並且它有有效的信息)。你能否給我指示你如何去做你在最後一段中描述的內容?我對rspec相當陌生,所以更多的信息,你可以給我更快樂,我會:)謝謝 – marcgg 2009-11-16 14:40:27

+0

發佈更新。將嘗試今晚發佈代碼示例 – 2009-11-16 16:18:04

相關問題