在其中一个控制器中,我有以下代码使用依赖注入发送电子邮件和短信。效果很好
                $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% 的代码覆盖率,但不会发送短信和电子邮件。