【发布时间】:2023-04-01 07:04:01
【问题描述】:
我有一个使用 try...catch 的 Symfony 控制器。 我使用 phpunit 来测试我的应用程序。我已经搜索但还没有找到一种方法来测试捕获异常中的代码。如何强制 php 单元假装出错并进入 catch 块并对其进行测试?
即:
try {
$foo = 1;
} catch (\Exception $ex) {
$mail = new Mail();
$mail->sendMail();
return new Response();
}
我如何告诉 phpunit 抛出一个 \Exception 以便它测试上面的 catch 块中的代码?
【问题讨论】:
-
如果您的控制器在某些条件下抛出异常,并且您想对其进行测试,只需模拟这些条件即可。
-
是的,您可以创建代码将创建异常的条件。
-
你那里有什么代码?在实际应用程序中必须抛出异常的东西。你需要模拟这部分来抛出异常。不过,如果你能把代码给我们看看就好了。
标签: unit-testing symfony testing phpunit functional-testing