unit-testing - 在 Laravel 中单元测试 Controller 而不测试路由的最佳方法是什么

标签 unit-testing laravel phpunit laravel-4

我已经阅读了很多关于使用 $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/

相关文章:

java - org.hibernate.StaleStateException : Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

C#:区分 CurrentCulture 和 InvariantCulture 的单元测试

mysql - orderBy 不使用 as 关键字 laravel

php - 错误 SQLSTATE [HY000] [1045]

php - 如何使用 PHPUnit 测试多个异常?

python - 使用 py.test,数据库不会在 LiveServerTestCase 之后重置

java - Mockito 比 EasyMock 更受欢迎?

php - 如何使用 Passport 在 Laravel API 中获取当前用户?

php - 如何配置 PHPUnit 以测试 ZF2 应用程序中的整个供应商文件夹?

unit-testing - 如何从 xml 配置中的 PHPUnit 测试套件中排除文件?