2009-11-12 95 views
0

我將一位員工的電子郵件下載到一個表格中,然後我收集了我剛剛下載的那些電子郵件集合,並在其上運行一系列規則。如何對電子郵件規則進行單元測試

例如如果來自[email protected]的電子郵件,將電子郵件路由到folder1。

我該如何爲這個過程編寫單元測試?
我需要創建一個虛擬的郵件集合,然後爲每個郵件創建一個規則嗎? 我很難打破單元測試,我總是希望將數據庫過程包含到我認爲是錯誤的測試中。

回答

2

單元測試的確切形狀將取決於系統的體系結構。通常,您會創建一組模擬電子郵件。使用模擬的電子郵件對象。它們不必實際存在於數據庫中。無論如何,你都應該把電子郵件表示成類。

將您的單元測試寫入模擬電子郵件上的Act,並聲明該規則的行爲符合您的期望。

3

你如何測試一個軟件很大程度上取決於你如何將它分解成不同的組件。真的沒有一個「過程」的測試。您應該專注於單個組件。例如,對於像你描述的一個過程中,軟件可以被分解成不同的組件如下:

  • 電子郵件下載
  • 電子郵件分析器
  • 規則引擎
  • Ë郵件路由器

您將基本上單獨測試每個組件,運行測試(每個組件儘可能多地執行每個方面)。

0

我在這裏是個純粹主義者,但是單元測試應該測試最小的代碼單元。這通常是一種類方法。所以你應該看看你的類或類所具有的每個公共方法,並編寫只測試該方法邏輯的測試。這可能意味着嘲笑其他交互的類,或者重構代碼以減少依賴關係。通常你會發現你有一個具有多個職責的類,這個職責應該被分解成多個類,這將使得編寫單元測試成爲可能。這就是單元測試如何作爲評估活動而不是測試活動。它應該會提高設計的質量。

您也可以看看以客戶爲中心的測試,以便測試它們一起工作。

相關問題