私のsymfonyプロジェクトのphpunitでいくつかのテストを行います。Symfonyサーバはunittestのcatchブロックを無視します
サーバーが特別な問題を正しく処理しているかどうかをテストします。 サーバーはグループにメールを追加しようとします。しかし、そのグループは存在しません。したがって、ldap_mod_addは例外をスローします。コードでは、私は例外をキャッチし、メールを追加できるようにグループを作成します。
私はphpunitなしでコードを試してもうまくいきます。しかしphpunitでは、サーバーはcatchブロックを無視します。
相続人のテストは、PHPがあるため、既存のないグループの警告を与えても、上に行くだろうように、私はconvertWarningsToExceptionsオプションを無効に機能
//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");
}
。
なぜサーバーはphpunitでキャッチブロックを無視しますか?
がスローされた例外の実際のクラスを確認してくださいあなたの助け
catchブロックの引数を置き換えようとしました。しかし、これは役に立たない。しかし、私は理由を知っています。 ldap_mod_addは例外をスローしません。それは偽を返すだけであり、警告を生成します。例外はSymfonyからのものです。しかし、最高の解決策は何ですか? ifブロックとcatchブロックを使用してfalseと例外をキャッチする必要がありますか? Symfonyでも例外に対する警告を無効にすることはできますか? – leet
* 'convertWarningsToExceptions'を無効にしているので、falseを返します。 – ShiraNai7