我是代码和单元测试的新手。我正在使用内置代码模块为我的Yii2基本应用程序创建一些测试用例。
我正在为更改密码模块创建一个测试用例。我创建了一个改变密码模型的模拟。但是,我无法使用该模拟
调用模型的验证方法这是我的代码:
public function testRepeatPassword()
{
$this->model = $this->getMockBuilder('app\models\ChangePasswordForm')
->setMethods(['validatePassword'])
->getMock();
$this->model->expects($this->once())
->method('validatePassword')
->will($this->returnValue(true));
$this->model->attributes = [
'old_password' => 'OldPassword',
'new_password' => 'NewPassword',
'password_repeat' => 'NewPassword'
];
expect_that($this->model->validate());
}
这是我得到的错误:
PHP Fatal error: Call to undefined method Mock_ChangePasswordForm_09a6c2a3::validate() in /var/www/html/concept_HIS/tests/unit/models/ChangePasswordTest.php on line 92
PHP Fatal Error 'yii\base\ErrorException' with message 'Call to undefined method Mock_ChangePasswordForm_09a6c2a3::validate()' in /var/www/html/concept_HIS/tests/unit/models/ChangePasswordTest.php:92 Stack trace: #0 [internal function]: yii\base\ErrorHandler->handleFatalError() #1 {main}
是否可以使用模拟对象调用模型的验证方法?