2010-11-18 83 views
0

我的程序(服務器)通過一些中間件連接到客戶端。
我在程序中創建了一個midle-ware初始化函數。如何單元測試機器控制功能或中間件控制功能

init_middleware() 
{ 
    if (middle-ware can not started) // then middle-ware throw exception 
    return exception; 
    else 
    return success; 
} 

我該如何單元測試init_middleware函數?

我認爲init_middleware函數只有一個失敗條件,即中間件無法啓動時。但是,我不能讓這種情況發生在單元測試中。

謝謝。

回答

3

這取決於你想測試什麼。

測試init_middleware()函數

如果你想測試init_middleware()功能,一種選擇是提供Mockmiddle-ware對象的功能。模擬對象返回您需要的值,以完成cover該函數。

測試中間件對象

如果你想測試middle-ware對象本身,實在沒有多少剩下要做的,但實際上使用真正的對象。它不會被稱爲單元測試,而是一個integration甚至system測試。

+1

我想測試第一種情況。我會找到模擬和學習。感謝您的幫助。祝你有個美好的一天〜 – cardbt 2010-11-18 07:29:02

0

嚴格的單元測試條款,你不應該這樣做。中間件是外部資源,就像磁盤,網絡甚至數據庫一樣。由於這些東西不在你的代碼的邊界之內(你正在測試),所以真正的單元測試不應該包含這些東西。

用stub替換中間件訪問代碼,或者如果需要實際的反饋,請使用Mocks,如Lieven提出的。

+0

謝謝你,謝麗爾申克!祝你今天愉快 :) – cardbt 2010-11-18 07:27:48