我要通過測試後承擔最後,您指的是實際與電子郵件服務器進行交談的代碼位,並測試此層的其他軟件。
現在這可能會或可能不會根據您的定義單位進行集成測試。坦率地說,我不在乎你決定怎樣稱呼它,但是如果你編寫了一些快速運行並且經常執行的自動化測試,那麼他們可能會使用與你的單元測試相同的平臺。
我想嘗試寫這個,因此它可以在免得以下兩個方面的工作中 - 第一個將它連接到您可以設置和配置,因爲你需要一個過程的本地電子郵件服務器。在Java中,我使用Dumpster,但我確定C++存在同樣的問題。 第二個將連接到至少一個本地電子郵件服務器,您可以腳本。一個你可以隨心所欲地噴灑(所以不是真實的或者在開發者之間共享1),並且運行相同的一組測試。原因是SMTP服務器的開發人員討厭每個人,你會想檢查你的存根工作原理是否與真實情況一樣。我認爲這相當於One Database Per Developer。
現在,如果您還沒有編寫自己的SMTP客戶端,並且圍繞現有的第三方API創建了facade,那麼我不太可能通過「集成測試」來假設第三方API已經足夠受到bug影響脫落。我會嘲笑第三方API並驗證門面是否按預期工作。
1)也許你可以在CI週期中這樣做,然後在所有開發者之間共享一組電子郵件服務器,本地運行只需使用C++垃圾箱。
你知道一種模擬C API的方法嗎?這就是我所看到的問題:如果它是一個C++庫,它似乎很簡單。另一個考慮是我不能100%確定我應該從第三方API中獲得什麼,因爲這對我來說很新穎,所以我更傾向於設置測試電子郵件服務器而不是嘲笑API的結果。 – 2009-10-08 13:44:57
直到我發佈上述內容之前,我纔看到這個要求。我並沒有做太多的C/C++開發,但http://www.lastcraft.com/cgreen.php看起來很有前途。另一種選擇是在它周圍創建一個簡單的包裝器(基本上每個聲明的方法都是一個可嘲弄的接口,然後是一個真正的調用)。 – 2009-10-08 14:25:52
但是,如果嘲笑C API是完全不可能的,則存根SMTP服務器如上所述,如果可以的話,使用垃圾箱等)。 – 2009-10-08 14:28:40