【发布时间】:2017-04-26 01:15:33
【问题描述】:
目前我用 phpunit 为我的 symfony 项目编写了一些测试。
我想测试服务器是否正确处理了一个特殊问题。 服务器尝试将邮件添加到组。但该组不存在。所以 ldap_mod_add 抛出异常。在代码中,我捕获了异常并创建了组,以便可以将邮件添加到其中。
如果我在没有 phpunit 的情况下尝试代码,它可以正常工作。但是使用 phpunit,服务器会忽略 catch 块。
功能如下
//Add
try
{
ldap_mod_add($this->ldapCon,"mail=$forward,$ldaptree",$forward_info);
}
catch (ContextErrorException $e)
{
//Check if the forward exist
$forwardGroup = $this->getForwardForMail($forward);
if($forwardGroup == [])
{
$this->logger->addAlert("Forward $forward does not exist");
$this->session->getFlashBag()->add("notice","We added the group $forward, because it did not exist.");
//Create forward and add the first mail
$this->createForward($forward,$mail);
return;
}
throw new AllreadyInGroupException("User already in forward $forward");
}
我禁用了 convertWarningsToExceptions 选项,这样即使 php 由于组不存在而发出警告,测试也会继续进行。
那么为什么服务器会忽略 phpunit 的 catch 块呢?
感谢您的帮助
【问题讨论】: