gpt4 book ai didi

unit-testing - Laravel 资源 Controller 的 PHPUnit 测试异常

转载 作者:行者123 更新时间:2023-12-01 08:29:34 26 4
gpt4 key购买 nike

是否可以使用 Laravel 资源 Controller 测试异常?每次我尝试执行以下操作时:

/**
* @expectedException Exception
* @expectedExceptionMessage Just testing this out
*/
public function testMyPost() {
$response = $this->call('POST', '/api/myapi/', array('testing' => 1));
}

我明白了:

Failed asserting that exception of type "Exception" is thrown.

我已经尝试过使用 \ExceptionException

在我的资源 Controller 中,我有:

public function store() {
throw new \Exception('Just for testing!');
}

有人知道我可以测试异常吗?我也试过使用:

    $this->setExpectedException('InvalidArgumentException');

最佳答案

问题如 hannesvdvreken 所述;异常被捕获。一个简单的解决方法是告诉 Laravel 错误/异常处理程序,当我们测试时,我们只想抛出我们的异常。

可能看起来像这样:

    // If we are testing, just throw the exception.
if (App::environment() == 'testing') {
throw $e;
}

对于 Laravel 5,这应该放在 app/Exceptions/Handler.php 的 render 方法中

对于 Laravel 4,这应该放在 app/start/global.php 内:

App::error(function(Exception $exception, $code)...

关于unit-testing - Laravel 资源 Controller 的 PHPUnit 测试异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com