1
PHPUnit을 사용하여 Laravel 4에서 컨트롤러의 일부 동작을 테스트하려고합니다.Laravel 컨트롤러를 테스트 할 때보기에 정의되지 않은 변수
public function testAboutPage()
{
$this->client->request('GET', 'about');
$this->assertResponseOk();
}
또한 App::before()
필터의보기에 변수를 바인딩합니다. 변수가 정의되지 테스트 전에
class PagesController extends BaseController
{
public function about()
{
return View::make('pages.about')->withTitle("About");
}
}
하지만, 내 테스트가 실패 :
App::before(function($request)
{
View::share('usersCount', User::remember(60)->count());
}
여기에 내 컨트롤러이다. 다음은 PHPUnit의 실패한 출력입니다.
12) PagesControllerTest::testAboutPage
ErrorException: Undefined variable: usersCount (View: app/views/layouts/application.blade.php) (View: app/views/layouts/application.blade.php)
app/storage/views/ed261635437f52c903a09b2774ce5a92:20
vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:41
vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:56
vendor/laravel/framework/src/Illuminate/View/View.php:134
vendor/laravel/framework/src/Illuminate/View/View.php:102
vendor/laravel/framework/src/Illuminate/View/View.php:76
app/storage/views/5993084368b648c9a244ec6637315755:18
vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:37
vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:56
vendor/laravel/framework/src/Illuminate/View/View.php:134
vendor/laravel/framework/src/Illuminate/View/View.php:102
vendor/laravel/framework/src/Illuminate/View/View.php:76
vendor/laravel/framework/src/Illuminate/Http/Response.php:70
vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php:202
vendor/laravel/framework/src/Illuminate/Routing/Router.php:1413
vendor/laravel/framework/src/Illuminate/Routing/Router.php:1003
vendor/laravel/framework/src/Illuminate/Routing/Router.php:968
vendor/laravel/framework/src/Illuminate/Foundation/Application.php:738
vendor/laravel/framework/src/Illuminate/Foundation/Application.php:708
vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php:81
vendor/symfony/browser-kit/Symfony/Component/BrowserKit/Client.php:319
app/tests/controllers/PagesControllerTest.php:109
이 문제를 해결하려면 어떻게해야합니까? 변수는 브라우저 또는 프로덕션에서 볼 때 잘됩니다.
컨트롤러 코드를 게시 할 수 있습니까? –
내 컨트롤러 코드가 추가되었습니다. 보시다시피, 매우 간단합니다. – Dwight
당신의 오류는'testUnsubscribedPage' 메쏘드에 있지만'testAboutPage' 메쏘드의 코드 만 올렸습니다. –