php – laravel中的测试过滤器4

前端之家收集整理的这篇文章主要介绍了php – laravel中的测试过滤器4前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新来的laravel.我正在尝试测试该身份验证对我的网站有效,并且我想在测试用例中测试身份验证过程.我创建一个内存中的sqlite数据库,我创建一个新的用户,并使用 – > save()方法来说明,以将其存储在数据库中.我设置了一个身份验证过滤器,用于检查数据库中的用户名,并根据该过滤器允许用户登录或返回“无效凭据”

//我的UserTest.PHP文件

  1. class UserTest extends TestCase {
  2.  
  3. public function testUsernameIsNotrequired()
  4. {
  5. // Create a new User
  6. $user = new User;
  7. $user->username = "phil@ipbrown.com";
  8. $user->password = "123456";
  9. //$user->password_confirmation = "password";
  10.  
  11. // User should save
  12. $this->assertTrue($user->save());
  13.  
  14. // Save the errors
  15. $password = $user->getAuthPassword();
  16.  
  17. // There should be 0 error
  18. $this->assertEquals("123456",$password);
  19. $this->seed();
  20.  
  21. $this->be($user);
  22.  
  23. $this->assertTrue(Redirect::route('authFilter'));
  24. }
  25. }

只要让您知道,一旦测试完成,内存中的数据库就会丢失,因为它的所有连接都丢失,所以我想检查我保存到我的数据库用户是否正确插入,其次我想检查是否我可以使用这个新用户的信息登录我的网站.

//我的filters.PHP文件

  1. Route::filter('auth',function()
  2. {
  3. if (Auth::guest()) return Redirect::guest('login');
  4. });
  5.  
  6.  
  7. Route::filter('auth.basic',function()
  8. {
  9. return Auth::basic('username');
  10. });
  11.  
  12. Route::filter('guest',function()
  13. {
  14. if (Auth::check()) return Redirect::to('/');
  15. });
  16.  
  17. Route::filter('csrf',function()
  18. {
  19. if (Session::token() != Input::get('_token'))
  20. {
  21. throw new Illuminate\Session\TokenMismatchException;
  22. }
  23. });

我试图附加一个过滤器到路由,所以我可以重定向到路由在我的测试和调用auth.basic过滤器,所以我可以测试我的过滤器,我知道我做了很多事情错误,所以请随时纠正你遇到的任何错误

我的routes.PHP文件:>

  1. Route::get('/',function()
  2. {
  3. return View::make('hello');
  4. });
  5.  
  6. Route::get('/authtest',array('as'=>'/authtest','before' => 'auth.basic',function()
  7. {
  8. return View::make('hello');
  9. }));
  10.  
  11. Route::group(array('prefix' => 'api/v1','before' => 'auth.basic'),function()
  12. {
  13. Route::resource('url','UrlController');
  14. });
  15.  
  16. Route::get('authFilter',array('as'=>'authFilter',function()
  17. {
  18. return Auth::basic('username');
  19. }));

我也有一个uri控制器,它具有我网站的所有页面

this是我现在创建我的uri控制器的时刻

我需要一个测试用例,创建用户将其存储到内存数据库中,然后使用该用户信息进行身份验证.如果任何人知道过滤器的Laravel测试,请让我知道我查找了测试过滤器的文档,但我猜想没有很好的记录.

谢谢

过滤器在Laravel 4的测试中被禁用.

您可以在测试中使用Route :: enableFilters()强制过滤器.

您可以阅读有关为什么/为什么不测试过滤器的各种讨论;

> https://github.com/laravel/framework/issues/344
> https://github.com/laravel/framework/issues/766
> http://forums.laravel.io/viewtopic.php?id=7404
> https://github.com/laravel/framework/issues/682

猜你在找的Laravel相关文章