在其中一个控制器中,我有以下代码使用依赖注入发送电子邮件和短信。效果很好
$message = new \Application\SendMessage\Message();
$message->toName = $toName;
$message->toEmail = $toEmail;
$message->fromEmail = $fromemail;
$message->emailBodyText = $emailBodyText;
$message->smsMessage = $emailBodyText;
$message->toMobile = $toMobile;
$seSMS = new \Application\SendMessage\SendSMS($message);
$suSMS = new \Application\SendMessage\SendMessage($seSMS);
$statusMsg = $suSMS->releaseMsg();
$seEmail = new \Application\SendMessage\SendEmail($message);
$suEmail = new \Application\SendMessage\SendMessage($seEmail);
$statusMsgEmail = $suEmail->releaseMsg();
我正在使用以下代码对其进行测试
public function testcreateActionCanBeAccessed()
{
$postData = array(
// variables here
);
$this->dispatch('/mycontroller/myaction', 'POST', $postData);
$this->assertResponseStatusCode(200);
}
效果很好,并且给了我 100% 的代码覆盖率,唯一的问题是,每次我运行单元测试时,它都会发送电子邮件并发布短信。有时这很好,因为它还测试了电子邮件发送和短信功能。
但是如果你必须一次又一次地运行你的测试,这有点烦人,我如何模拟上面的代码,所以它仍然会给我 100% 的代码覆盖率,但不会发送短信和电子邮件。