php – laravel中的测试过滤器4
我是新来的laravel.我正在尝试测试该身份验证对我的网站有效,并且我想在测试用例中测试身份验证过程.我创建一个内存中的sqlite数据库,我创建一个新的用户,并使用 – > save()方法来说明,以将其存储在数据库中.我设置了一个身份验证过滤器,用于检查数据库中的用户名,并根据该过滤器允许用户登录或返回“无效凭据”
//我的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')); } } 只要让您知道,一旦测试完成,内存中的数据库就会丢失,因为它的所有连接都丢失,所以我想检查我保存到我的数据库的用户是否正确插入,其次我想检查是否我可以使用这个新用户的信息登录我的网站. //我的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 IlluminateSessionTokenMismatchException; } }); 我试图附加一个过滤器到路由,所以我可以重定向到路由在我的测试和调用auth.basic过滤器,所以我可以测试我的过滤器,我知道我做了很多事情错误,所以请随时纠正你遇到的任何错误 我的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',function() { return Auth::basic('username'); })); 我也有一个uri控制器,它具有我网站的所有页面 this是我现在创建我的uri控制器的时刻 我需要一个测试用例,创建用户将其存储到内存数据库中,然后使用该用户信息进行身份验证.如果任何人知道过滤器的Laravel测试,请让我知道我查找了测试过滤器的文档,但我猜想没有很好的记录. 谢谢
过滤器在Laravel 4的测试中被禁用.
您可以在测试中使用Route :: enableFilters()强制过滤器. 您可以阅读有关为什么/为什么不测试过滤器的各种讨论; > https://github.com/laravel/framework/issues/344 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |