我在CakePHP中進行單元測試時遇到了一些問題,特別是在測試數據庫插入/更新時。比方說,我有一個模型,它是這樣的:測試驅動的開發 - 單元測試(在CakePHP中)
class User {
var $name = 'User';
function updatePassword($data) {
return $this->updateAll($data);
}
}
class UserTestCase {
function testUpdatePassword() {
$tmpData = array(
'User' => array(
'password' => sha1(uniqid('', true)) //dummy pass
);
$result = $this->User->updatePassword($tmpData);
$this->assertTrue($result);
}
}
我的問題是,在我的測試案例:
- 我必須提供將通常從形式 檢索到的虛擬數據
- 虛擬數據的格式沒有考慮到實際表單數據可能不正確的事實
- 我只測試更新是否成功:它似乎需要很多努力才能創建所有虛擬數據測試這個
這個例子似乎有點做作(I可以做在控制器的update
而不必創建例如一個額外的模型法),但主要的一點是,測試更新/插入時,該數據是僞數據和從表單中檢索的數據可能會有所不同,但好處似乎並不高於成本。
您對TDD和單元測試的方法非常感謝,並且您一般會嘗試給出什麼樣的覆蓋範圍會很好。
乾杯
TDD對我
我建議您閱讀一本關於此主題的書,例如:https://leanpub.com/cakephpunittesting/ – rrd 2013-04-13 12:24:57