緣由
開發程式時,我們都會建立Builde Server,每日建置並測試我們的程式是否正確。而寄信的功能是常見的需求,而每日測試時發信的問題就來了。
- Mail Server 難道一定要存在嗎?
- Mail Server 未能連線時,測試寄信的功能就會失敗。測試失敗看來就像是程式的問題。
- 這當然不是程式的問題,因為程式一直都沒動啊!
- 結論:測試無效==>測試無用。
這是老話題了。因為這已經不是單元測試了,而是整合測試。
那,我該如何進行寄測試信的「單元測試」呢?
解法
最簡單的測試方法,是修改 config,讓寄信的功能,改寄到本機資料夾,就不會亂發信。測試信真的寄給了客戶,客戶還會以為是真的。測試信寄太多,也會被當成垃圾信的跳版而被封鎖呢。
修改 config 如下。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.net> <mailSettings> <smtp from="mymail<testmail@domain.com.tw>" deliveryMethod="SpecifiedPickupDirectory"> <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\mails" /> </smtp> </mailSettings> </system.net> </configuration>
記得要先建立 pickupDirectoryLocation 所指定的目錄,否則還是會發生例外。
PS: 這樣還是會測到「檔案系統」,嚴格來說並非完全是道地的單元測試。不過至少,不寄測試信的目的達到了。
沒有留言:
張貼留言