l

2014年10月7日 星期二

Test Double(6):Fake Object

Sep. 22 22:43~23:00

替身

照片節錄自網路。

 

接續〈Test Double(3):Dummy Object〉所提到的系統設計,這一集要套用Fake Object

Fake Object 的題目

按照慣例先看一下系統類別圖。

螢幕截圖 2014-09-22 22.08.45_thumb[1]

 

今天要練習的題目是「使用Fake實作IAlert,把alert訊息送到檔案中」。原本系統設計IAlert要把訊息透過email或是簡訊傳給指定的系統負責人,但是email與簡訊這些「本尊」不好驗證。為了可測性,用一個Fake Alert來取代真的Alert。Fake Alert也會把訊息往外傳,只不過傳遞的目的地是檔案。

接下來請鄉民們實作FakeLogAlert,讓下面兩個測試案例可以通過。在這裡要提醒一下鄉民,下面這兩個測試案例執行之後並沒有自動驗證輸入檔案的內容,必須要用人工的方式自己去看。在真實的專案中,要額外寫一個檢查檔案內容的輔助函數來自動驗證。

 螢幕截圖 2014-09-22 22.54.46

 

實作Fake Object

以下是FakeLogAlert的參考實作,用最簡單的方式把訊息存到檔案中。

螢幕截圖 2014-09-22 22.55.47

***

友藏內心獨白:Fake只需要簡化的實作。

1 則留言:

  1. 可是 teddy, 為什麼需要寫到檔案去? 如果要檢查是否收到 alert, 讓 fake 紀錄一下收到的 alert 種類與數量, 後面就可以直接檢查 fake 有沒有拿到 alert 了不是嗎? 寫檔案好像跨過邊界去了。

    回覆刪除