тестирование фильтров в laravel 4

Я новичок в laravel. Я пытаюсь проверить, что проверка подлинности работает на моем сайте, и я хочу протестировать процесс аутентификации в тестовом примере. Я создаю базу данных sqlite в памяти, создаю новый User и использую ->save() метод eloquent для его сохранения в базе данных. Я установил фильтр проверки подлинности, который проверяет имя пользователя в базе данных и в зависимости от того, что он либо позволяет пользователю входить в систему, либо возвращает «недопустимые учетные данные»,

// мой файл UserTest.php:

 class UserTest extends TestCase { public function testUsernameIsNotRequired() { // Create a new User $user = new User; $user->username = "phil@ipbrown.com"; $user->password = "123456"; //$user->password_confirmation = "password"; // User should save $this->assertTrue($user->save()); // Save the errors $password = $user->getAuthPassword(); // There should be 0 error $this->assertEquals("123456",$password); $this->seed(); $this->be($user); $this->assertTrue(Redirect::route('authFilter')); } } 

просто чтобы вы знали, что бит памяти в памяти теряется после завершения теста, так как все соединения с ним потеряны, поэтому я хочу проверить, правильно ли вставлен пользователь, который я сохранил на своем db, а во-вторых, я хочу проверить, Я могу войти на свой сайт, используя информацию этого нового пользователя.

// файл filters.php:

 Route::filter('auth', function() { if (Auth::guest()) return Redirect::guest('login'); }); Route::filter('auth.basic', function() { return Auth::basic('username'); }); Route::filter('guest', function() { if (Auth::check()) return Redirect::to('/'); }); Route::filter('csrf', function() { if (Session::token() != Input::get('_token')) { throw new Illuminate\Session\TokenMismatchException; } }); 

Я пытался привязать фильтр к маршруту, чтобы я мог перенаправить на маршрут во время моего теста и который вызывает фильтр auth.basic, чтобы я мог проверить свой фильтр, я знаю, что я много делаю неправильно, поэтому, пожалуйста, не стесняйтесь исправить любые ошибки, которые вы приходите на

my routes.php файл:>

 Route::get('/', function() { return View::make('hello'); }); Route::get('/authtest', array('as'=>'/authtest','before' => 'auth.basic', function() { return View::make('hello'); })); Route::group(array('prefix' => 'api/v1', 'before' => 'auth.basic'), function() { Route::resource('url', 'UrlController'); }); Route::get('authFilter', array('as'=>'authFilter','before' => 'auth.basic', function() { return Auth::basic('username'); })); 

У меня также есть контроллер uri, у которого есть все страницы для моего сайта

это то, что я последовал, чтобы создать мой контроллер uri на данный момент

Мне нужен тестовый пример, который создает пользователя, который хранит его в базе данных в памяти, а затем аутентифицирует эту информацию. Если кто-либо знает тестирование laravel для фильтров, пожалуйста, дайте мне знать. Я просмотрел документацию для тестирования фильтров, но, я думаю, это плохо документировано.

Спасибо

Фильтры отключены в тестах на Laravel 4.

Вы можете использовать Route::enableFilters() в своем тесте, чтобы Route::enableFilters() фильтры.

Вы можете прочитать о различных дискуссиях о том, почему / почему не тестировать фильтры;

Вы можете сохранить большую часть этого в модульном тесте.

 public function testMyFilter() { // Set up route with filter. Route::get('testFilter', ['before' => 'myfilter', function() { return 'Hello World'; }]); // Enable filters. Route::enableFilters(); // Be a user. $this->be($this->user); // Make a request that will use the filter. $response = $this->client->request('GET', 'testFilter'); // Check the response. $this->assertResponseOk(); }