我想寫一個測試,我的一個方法使用全局函數web()
,它需要一個(字符串)url,並創建並返回新實例UrlHelper
。這給我的應用程序一些幫助器方法的快捷方式。 (是DI會更好,但這是在一個更大的應用程序...)如何模擬其他類使用的全局函數和類
我試圖測試的方法,使用此全局助手獲取給定的網址的內容,並將其與另一個字符串進行比較。
使用phpunit,我如何攔截電話web
或創建UrlHelper
,所以我可以確保它返回給定的響應?代碼看起來有點像下面
function web($url){
return new \another\namespace\UrlUtility($url);
}
...
namespace some/namespace;
class checker {
function compare($url, $content){
$content = web($url)->content();
...logic...
return $status;
}
}
單元測試是測試比較的邏輯,所以我想從web
通話預期的內容。我希望mocks /存根可以做到這一點 - 但我不確定是否可以打這個全局函數或其他沒有通過的類?
感謝
看一看這個http://stackoverflow.com/a/6154470可能需要使用PHP擴展 – OnIIcE