所以我決定PHPUnit中使用接縫進行調查,但我碰到一個問題就來了的PHPUnit和接縫
我重新安排我的課的方式,我打破了依賴於數據庫類
db_Class::getMyData($vars);
成爲
self::getMyData($vars);
,我加入功能,我的代碼
protected static function getMyData($vars) {
return db_Class::getMyData($vars);
}
這樣做是爲了讓我可以創建一個繼承此類並重載getMyData函數的類。在運行我的測試用例時能夠改變它。
因此,例如,在擴展類以上和過載該函數的接縫類:
protected static function getMyData($vars) {
return array('id'=>1, 'name'=>"My Name");
}
這將是非常有用的,因爲我可以改變數據作爲我喜歡。但是,使用PHPUnit時,您可以使用$ this-> getMock和類似的命令運行模擬。我是否能夠在縫線課程中實現這一點?
我試圖尋找一個解決方案,我不使用依賴注入器,這將是我的另一種選擇,不是很差,只是想評估兩種選擇。
邁克爾羽毛表達接縫是以下幾點:
A seam is a place where you can alter behavior in your program without editing in that place.
所以我可能無法得到完整的圖片,我一直在努力得到它,而現在,我只是不能讓我的頭靠近它。如果您有任何想法或問題,請發表評論。
我要求的是一種在不同場景下輕鬆使用mock的方法。我並不總是想要在seam中返回相同的值,有時我想返回null來獲取錯誤,有時候會返回一個數組,其中包含正確的數據,有時候可能還有別的東西。
感謝
我提供了一個鏈接到我想要的東西低於實現 – Oldek 2011-12-22 13:59:16