0
我有沒有使用TDD 現在我想編寫一個測試,看起來像這樣模擬新創建的實例?
function somefunction($someargs){
// do a few checks on $someargs
$database = new DB_PG();
$result = $database->select($query);
// do some changes on result
return $result;
}
因爲即時通訊沒有太大的使用PHPUnit和一般測試 我的問題expirienced是一個函數的舊代碼: 如何我可以嘲笑DB_PG嗎? 我試圖getMock()在我的測試,但由於該函數使用「新」來獲得一個實例 我的模擬對象將被忽略,這是有道理的
,所以我只看到2個選項
- 一些功能PHPUnit的我不知道 - 這是我在這裏問^^
- 我不得不修改舊代碼的原因 - 我知道會更好
所以,任何人都知道的選項1回答?
THX所有
你如何配置這個測試?你讀過這篇關於測試雙打的文章嗎?這是一個獨立的功能,還是它是一個更廣泛的類的一部分的方法?你的測試(使用getMock)是什麼樣的? – 2009-09-10 13:02:39
*你的配置是什麼意思? *是的,我知道這篇文章,但我不知道你在這裏指出什麼? *其獨立的功能,我想測試 和測試它試圖讓運行看起來像這樣 功能test_someFunctionFailed(){$ = pgmock $這個 - > getMock(「DB_PG」,陣列(「選擇」) ); ($' - > return()) $ rval = somefunction();這個函數將會返回一個數組, $ this-> assertNull($ rval); } 目前的結果爲 致命錯誤:調用未定義的方法DB_PG :: select()in ... – 2009-09-10 13:18:24