我试图阻止发送电子邮件的方法实际发送电子邮件,并且我认为模拟对象(或某些变体)是可行的方法。情况如下:
class UserModel {
public static function resetPassword()
{
// Code to generate new password, etc, etc
self::_sendMail($to, $body);
return 1;
}
private function _sendMail($to, $body)
{
// Send email
}
}
PHPUnit 中是否有我可以模拟 _sendMail() 并注入我自己的代码,以便我可以正确测试 resetPassword() 中的其他逻辑?
我的测试看起来像:
$this->assertTrue(UserModel::resetPassword());
谢谢你的帮助。