我已经阅读了很多关于使用 $this->call($destination, $parameters, 'GET');
测试 Controller 的文档。但这似乎也依赖于正在设置的路线,并且知道正确 $destination
使用。
通常这是可以的,但是从路由访问 Controller 似乎不适合单元测试。我想对 Controller 进行单元测试,而不是路由。是否有一种标准的方法来单元测试 Controller ,而不处理路由?
简单地手动实例化 Controller 并调用方法就足够了吗?例如。
$controller = new MyController;
$response = $controller->someMethod($param);
$this->assertSomething($response);
也许 Controller 不应该进行单元测试(并且只有验收测试),而我的请求表明我的 Controller 太重了。
最佳答案
您可以直接调用您的操作:
$response = $this->action('GET', 'OrdersController@show', ['id' => 1]);
关于unit-testing - 在 Laravel 中单元测试 Controller 而不测试路由的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19029797/