2
我想單元測試我的代碼,並且我有一個使用HttpSocket類/lib/Cake/Network/Http/HttpSocket.php
的數據源。模擬CakePHP的HttpSocket類
問題是我不希望它在測試時執行請求,但我無法找到嘲笑該類的方法。
當然我可以通過參數在構造函數中注入它,但我可能不得不更改Cake的核心,所以這不是一個選項。我不測試使用這個數據源的模型,我正在測試數據源本身。
任何想法?
我想單元測試我的代碼,並且我有一個使用HttpSocket類/lib/Cake/Network/Http/HttpSocket.php
的數據源。模擬CakePHP的HttpSocket類
問題是我不希望它在測試時執行請求,但我無法找到嘲笑該類的方法。
當然我可以通過參數在構造函數中注入它,但我可能不得不更改Cake的核心,所以這不是一個選項。我不測試使用這個數據源的模型,我正在測試數據源本身。
任何想法?
內,您的數據源類有讓你的HttpSocket的方法:
public function getHttpSocket() {
return new HttpSocket();
}
然後你可以嘲笑你的數據源的這個方法,並返回一個完全嘲笑HttpSocket對象,並設置您的期望,並根據需要返回值。
謝謝我已經做了這樣的事情(在你回答之前做過)。但是不是創建一個方法,我在構造函數中添加了一個可選的第二個參數,即HttpSocket對象(模擬)。當通過類將使用它,當不會創建一個新的實例。作品也:) – Brayan