我是laravel的新手。我試圖測試認證適用於我的網站,我想在測試用例中測試認證過程。我創建了一個內存中的sqlite數據庫,我創建了一個新的User並使用了雄辯的方法將它存儲在數據庫中。我已經安裝認證過濾器檢查數據庫中的用戶名和取決於它要麼允許用戶登錄或返回「無效憑證」laravel的測試過濾器4
//我UserTest.php文件:
class UserTest extends TestCase {
public function testUsernameIsNotRequired()
{
// Create a new User
$user = new User;
$user->username = "[email protected]";
$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 Illuminate\Session\TokenMismatchException;
}
});
我試圖過濾器附加到路徑,這樣我可以在我的測試過程中重定向到路線和調用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','before' => 'auth.basic', function()
{
return Auth::basic('username');
}));
我也有AU這對於我的網站
this所有頁面裏控制器是什麼我也跟着創建我的URI控制器的時刻
我需要創建一個用戶並將其存儲到內存中的數據庫,然後測試用例使用該用戶信息進行身份驗證。如果任何人知道濾波器的laravel測試,請讓我知道我查閱了測試過濾器的文檔,但我想它沒有很好的記錄。
謝謝
你會得到什麼錯誤? –
F 時間:0秒,記憶:13。00Mb 有1個故障: 1)UserTest :: testUsernameIsNotRequired 無法斷言照亮\ HTTP \ RedirectResponse對象( '請求'=>照亮\ HTTP \請求對象( 。。。。。。失敗! 測試:1,斷言:3,失敗:1. – tanzeelrana