0
在控制器中的一個我有以下代碼發送電子郵件和短信使用依賴注入。其工作正常單元測試 - 依賴注入zf2
$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%的代碼覆蓋率,但不會發送短信文本和電子郵件。
如果不通過控制檯「正常」調用操作,那麼爲請求不通過控制檯提供條件是解決此問題的一種方法。我很好奇自己是否有另一種方式。 – guessimtoolate