我必須爲php類編寫測試,該類使用由我們使用的apache擴展創建的資源類型,但讓我們假設它是一個帶有mysql資源類型的數據庫類。模擬php的單元測試資源類型
顯然我想嘲笑這些全局函數,但是當類檢查資源是否創建好時如何僞造返回類型?
php文檔中的資源頁面甚至有一條評論抱怨測試無法進行模擬。這是最終的答案嗎?
比方說,我有(例如瘸)代碼:
class DB {
function init(){
$this->handle = mysql_connect('myserver');
if(get_resource_type($this->handle) != 'mysql') return false;
return true;
}
}
,然後測試對於成功和失敗的考驗,通過嘲諷mysql_connect
。
我沒有看到你指向...如果我要測試這個類,並且在curl_exec之前檢查資源的類型是原始捲曲類型?我不希望它使用真正的捲曲功能? – gcb 2012-04-13 17:27:25
@gcb:你可能要單元測試'Curl'類(當你這樣做時,句柄是一個內部的,不需要測試),或者你想測試一些其他使用Curl的組件'類,那麼你可以給它一個'Curl'類的模擬。 – hakre 2012-04-13 18:02:38
如果我正在測試'Curl'類,那麼如何避免打擊Web服務器和不一致呢? – gcb 2012-04-13 18:06:04