Tôi đang kiểm tra xem có đăng nhập thành công hay không. Cho rằng tôi đang kiểm tra,Không kiểm tra đơn vị bộ điều khiển để kiểm tra đăng nhập thành công trong laravel 4.2
- Nếu đăng nhập thành công
- Application nên chuyển hướng đến bảng điều khiển
cho rằng controller
của tôi trông như thế này
public function loginPost(){
if (Auth::attempt(array(
'email' => Input::get('email'),
'password' => Input::get('password')
))){
return Redirect::intended(route('dashboard'));
}
return Redirect::route('login')
->withInput()
->with('errorMessage', 'Failed');
}
Và test
ngoại hình của tôi như thế này
public function testLoginSuccess(){
$input = [
'email' => '[email protected]',
'password' => 'computer'
];
Input::replace($input);
Auth::shouldReceive('attempt')
->with($input)
->once()
->andReturn(true);
$this->call('POST', 'login', $input);
$this->assertRedirectedToRoute('dashboard');
}
Mặc dù tính năng này hoạt động trong trình duyệt. Nhưng trong khi thử nghiệm, nó không thành công với thông điệp:
BadMethodCallException: Phương pháp Mockery_0_Illuminate_Auth_AuthManager :: séc() không tồn tại trên đối tượng giả này
bạn có thể dán lớp thử nghiệm đầy đủ của bạn – osleonard
@Nirmalz Thapaz trông giống như có điều gì đó tắt về cách bạn đang chế giễu các 'đối tượng Auth' - bạn có thể gửi nơi bạn làm bạn mocking (hoặc toàn bộ tập tin test)? – Leith
Giống như @Leith hỏi, bạn đang chế nhạo đối tượng 'Auth'? [Ngoài ra, Phương thức không tồn tại trên đối tượng giả lập này là giả lập laravel] (https://stackoverflow.com/questions/27747000/method-does-not-exist-on-this-mock-object-laravel-mockery) – joshuamabina