2014-01-09 47 views
1

我的問題其實很簡單,一個適配器(設計模式)類應該是單元測試的,怎麼樣?如何(真的)單元測試一個適配器

例子:

我想創建一個類ClientSocket的用PHP至極是的fsockopen,FREAD,FWRITE的適配器。

Class ClientSocket extends SenderAdapterAbstract 
{ 
    private $s = null; 

    public function __construct($host, $port) 
    { 
     $this->s = fsockopen($host, $port); 
    } 

    // Abstract method concrete implementation 
    public function send($message) 
    { 
     fwrite($this->s, $message); 

     $result = fgets($this->s); 
     fclose($this->s); 
    } 
} 

我應該測試這個類嗎?如果單元測試與網絡交談,則單元測試不是真正的單元測試...

+0

我覺得http://codereview.stackexchange.com是一個更好的地方爲你的問題 –

+0

我的情況下創建代碼審查的問題。謝謝! – nemenems

回答

2

我應該測試這個類嗎?一個單元測試並不是真正的一個,如果它與網絡會話 ...

沒錯。這就是爲什麼你不能單元測試一個適配器,但你可以爲它創建集成測試。這些集成測試應該保持3d方庫正確運行的基本檢查。如果它們太慢,則可能需要將它們從主測試套件移動到運行頻率較低的單獨測試套件。

http://blog.8thlight.com/eric-smith/2011/10/27/thats-not-yours.html http://davesquared.net/2011/04/dont-mock-types-you-dont-own.html

相關問題