我在学习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);
}
}
我遇到的问题是在我的测试用例中:
- 我必须提供通常从表单中检索的虚拟数据
- 虚拟数据的格式没有考虑实际表单数据可能不正确的情况
- 我只测试更新是否成功:为了测试这个,创建所有虚拟数据似乎需要很多工作量
update
而不必为此创建额外的模型方法),但主要问题是,在测试更新/插入时,数据是虚拟数据,而从表单中检索的数据可能会有所不同,好处似乎并不超过成本。欢呼声
感谢您的TDD和单元测试方法,希望了解您通常尝试覆盖哪些案例。