2010年10月14日 星期四

寄測試信到本機資料夾

緣由

開發程式時,我們都會建立Builde Server,每日建置並測試我們的程式是否正確。而寄信的功能是常見的需求,而每日測試時發信的問題就來了。

  1. Mail Server 難道一定要存在嗎?
  2. Mail Server 未能連線時,測試寄信的功能就會失敗。測試失敗看來就像是程式的問題。
  3. 這當然不是程式的問題,因為程式一直都沒動啊!
  4. 結論:測試無效==>測試無用。

這是老話題了。因為這已經不是單元測試了,而是整合測試。

那,我該如何進行寄測試信的「單元測試」呢?

解法

最簡單的測試方法,是修改 config,讓寄信的功能,改寄到本機資料夾,就不會亂發信。測試信真的寄給了客戶,客戶還會以為是真的。測試信寄太多,也會被當成垃圾信的跳版而被封鎖呢。

修改 config 如下。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.net>
        <mailSettings>
            <smtp from="mymail&lt;testmail@domain.com.tw&gt;" deliveryMethod="SpecifiedPickupDirectory">
                <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\mails" />
            </smtp>
        </mailSettings>
    </system.net>
</configuration>

記得要先建立 pickupDirectoryLocation 所指定的目錄,否則還是會發生例外。

PS: 這樣還是會測到「檔案系統」,嚴格來說並非完全是道地的單元測試。不過至少,不寄測試信的目的達到了。

參考

沒有留言:

Share with Facebook