【发布时间】:2014-01-02 05:51:25
【问题描述】:
设置 1:在 PHPUnit 中从路由回响工作
routes.php
Route::get('signup', function(){
return "Hello World!";
});
/tests/SignupTest.php
class SignupTest extends TestCase {
public function testIndex(){
$this->call('GET', 'signup');
$this->assertResponseOK();
}
}
运行 PHPUnit 会返回以下内容:
OK (1 test, 1 assertion)
设置 2:但是当我路由到它时 PHPUnit 找不到注册控制器
routes.php
Route::get('signup', array('uses' => 'Signup@process'));
/app/controllers/Signup.php
class Signup extends BaseController {
public function process(){
echo "Hello World!";
}
}
/tests/SignupTest.php
class SignupTest extends TestCase {
public function testIndex(){
$this->call('GET', 'signup');
$this->assertResponseOK();
}
}
PHPUnit 返回以下内容:
There was 1 error:
1) SignupTest::testIndex
ReflectionException: Class Signup does not exist
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:476
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:416
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:423
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:77
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:50
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:900
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php:118
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:964
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:934
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:677
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:652
/Applications/MAMP/htdocs/laravel/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php:82
/Applications/MAMP/htdocs/laravel/vendor/symfony/browser-kit/Symfony/Component/BrowserKit/Client.php:319
/Applications/MAMP/htdocs/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:74
/Applications/MAMP/htdocs/laravel/app/tests/SignupTest.php:12
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
设置信息:
- Laravel 4.1
- PHPUnit 3.7.28
- 均由 Composer 安装
- MAMP 在 Mac OS X 10.8 上运行 PHP 5.4.4
我认为我没有更改 Laravel 或 PHPUnit 的核心/配置文件中的任何内容。
我尝试过的事情:
我找到了一些关于此类问题的答案(在 SO 和其他网站上),其中的答案建议修复类/文件/方法名称中的错误,例如:
Laravel Controller not working
我认为这不是问题,因为我已经检查了所有名称。 它还返回“Hello World!”在浏览器中测试时,上述两条路由都符合预期,这表明该路由在 Laravel 中运行良好。问题似乎出在 PHPUnit 上。
我的问题:为什么 PHPUnit 在 app/controllers 中找不到 Signup Class?
【问题讨论】:
标签: php laravel phpunit composer-php