Nic*_*dis 6 testing phpunit unit-testing functional-testing symfony
我有一个使用 try...catch 的 Symfony 控制器。我使用 phpunit 来测试我的应用程序。我已经搜索过,但还没有找到如何在 catch 异常中测试代码的方法。如何强制 php 单元假装出现问题并进入 catch 块并对其进行测试?
IE:
try {
$foo = 1;
} catch (\Exception $ex) {
$mail = new Mail();
$mail->sendMail();
return new Response();
}
Run Code Online (Sandbox Code Playgroud)
我如何告诉 phpunit 抛出 \Exception 以便它测试上面的 catch 块内的代码?
好吧,在这些条件下,它显然不会抛出任何异常,但请考虑您的 try/catch 所在的函数。您需要对该函数进行单元测试,并提供将导致其失败的参数,并捕获。
例如:
public function doStuff($argument) {
try {
$parsed = (int)$argument; //but what if $argument is a string with letters
} catch (\Exception $ex) {
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
要测试当你搞砸时是否抛出异常:
public function testDoStuff() {
// get a mock of the class, let's just call it $mock
// do some regular asserts if you want
$this->setExpectedException('\Exception');
$mock->doStuff("haha, you can't parse this");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2352 次 |
最近记录: |