コントローラーの1つに、依存性注入を使用して電子メールとSMSを送信する次のコードがあります。これは正常に動作します
                $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% のコード カバレッジが得られます。唯一の問題は、単体テストを実行するたびに、電子メールが送信され、SMS テキスト メッセージもリリースされることです。メール送信とテキスト メッセージング機能もテストするので、これは良いこともあります。
しかし、何度も何度もテストを実行しなければならない場合は、ちょっと面倒です。上記のコードをモックして、100% のコード カバレッジが得られるようにするにはどうすればよいでしょうか。ただし、SMS テキストや電子メールは送信されません。