2014-03-05 69 views
2

我想單元測試我的代碼,並且我有一個使用HttpSocket類/lib/Cake/Network/Http/HttpSocket.php的數據源。模擬CakePHP的HttpSocket類

問題是我不希望它在測試時執行請求,但我無法找到嘲笑該類的方法。

當然我可以通過參數在構造函數中注入它,但我可能不得不更改Cake的核心,所以這不是一個選項。我不測試使用這個數據源的模型,我正在測試數據源本身。

任何想法?

回答

2

內,您的數據源類有讓你的HttpSocket的方法:

public function getHttpSocket() { 
    return new HttpSocket(); 
} 

然後你可以嘲笑你的數據源的這個方法,並返回一個完全嘲笑HttpSocket對象,並設置您的期望,並根據需要返回值。

+0

謝謝我已經做了這樣的事情(在你回答之前做過)。但是不是創建一個方法,我在構造函數中添加了一個可選的第二個參數,即HttpSocket對象(模擬)。當通過類將使用它,當不會創建一個新的實例。作品也:) – Brayan