【发布时间】:2014-12-29 21:30:26
【问题描述】:
我在 Laravel 中有如下设置:
在/app/controllers/MyController.php:
class MyController extends BaseController {
const MAX_FILE_SIZE = 10000;
// ....
}
在/app/tests/MyControllerTest.php:
class MyControllerTest extends TestCase {
public function myDataProvider() {
return [
[ MyController::MAX_FILE_SIZE ]
];
}
/**
* @dataProvider myDataProvider
*/
public function testMyController($a) {
// Just an example
$this->assertTrue(1 == 1);
}
}
但是,当我运行 vendor/bin/phpunit 时,我收到以下错误:
如果我删除myDataProvider() 中对MyController 类的引用并将其替换为文字常量,则测试成功完成。
另外,我可以在实际的testMyController()方法中放置对MyController::MAX_FILE_SIZE的引用,测试也成功完成。
似乎 Laravel 框架类的自动加载设置直到之后数据提供者方法被调用,但之前实际测试方法是叫。 有什么办法可以让我从 PHPUnit 数据提供程序中访问 Laravel 框架类?
注意:我直接从命令行调用 PHPUnit,而不是从 IDE(例如 NetBeans)中调用。我知道有些人对此有疑问,但我认为这不适用于我的问题。
【问题讨论】:
标签: php laravel phpunit automated-tests