我正在使用 phpunit 在 Yii 中运行单元测试。所有测试都通过了,但是当我期望看到三个时,它在数据库中留下了一条记录,一条用于测试登录时的固定装置,两条来自我在测试成员注册时调用的 ARO 保存。
我在一个专门用于测试的单独数据库中执行此操作。这是我应该关注的事情还是可能与拆卸有关的典型行为?
“testReg”的记录保留在此代码之后的数据库中,即使它保存在“testReg2”之前。如果我注释掉该保存,“testReg2”仍然存在。如果我注释掉这两个,夹具数据仍然存在。
这是测试:
class UserTest extends CDbTestCase
{
public $fixtures=array(
'users'=>'User',
);
/**
* Valid user can login to backend
* @return void
*/
public function testBackendUserLogin()
{
$model = new LoginForm();
$model->attributes = array('username'=>'member', 'password'=>'password');
$this->assertTrue($model->validate(array('username', 'password')));
$this->assertTrue($model->login());
}
/*
* Only logged in super-admin or sub-admins with approved accounts may create new members
* @return void
*/
public function testBackendMemberRegister(){
$member=new Member();
$member->register(array(
'username'=>'testReg',
'password'=>'password',
));
$member2=new Member();
$member2->register(array(
'username'=>'testReg2',
'password'=>'password',
));
}
}
夹具:
return array(
'user'=>array(
'username'=>'member',
'password'=>'$2a$08$U/z5X4Y1Ok4g20t6DWSwqezgNylpqdjKmrsMFBJDvLqQmOKMG6SvO',
'created'=>'04-05-2013 00:00:00',
'modified'=>'04-05-2013 00:00:00',
)
);
调用 ARO 保存的方法在 User 类中。成员类扩展用户类。
public function create(array $submission){
$this->attributes=$submission;
$this->hashPassword();
$submission['password']=null; //for safety
if($this->save()){
return true;
}
return false;
}