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