Laravel 中的测试表格
Testing Forms in Laravel
考虑以下用于测试登录控制器操作的测试:
public function testLoginWithWrongData() {
$response = $this->action('POST', 'BlogController@postLogin', ['email' => 'jesus@jesus.com', 'password' => 'asdasdasd']);
$this->assertResponseStatus('302');
}
之所以可行,是因为如果我无法验证您的身份,我会将您重定向回来。但是,如果我对您进行身份验证,我也会重定向您...
所以....
在 rails 中,我会测试 重定向回登录表单 或 重定向到仪表板。
此测试的控制器操作如下所示:
public function postLogin(Request $request) {
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:3'
]);
$credentials = $this->getCredentials($request);
if (Auth::attempt($credentials)) {
Session::flash('success', "Welcome back Adam. Care to manage your blogs?");
return redirect()->route('blogs');
} else {
Session::flash('error', "I'm sorry. Who are you? I don't recognize you.");
return redirect()->back();
}
}
那么我必须用什么测试方法来给这个测试更多的实质......而不是这里有一些不正确或正确的细节,顺便说一句,重定向......
您可以在重定向后查看您所在的页面。类似于:
$this->see('Welcome back')->onPage('/blogs');
成功登录后:
$this->see('sorry.')->onPage('/'); // whatever your login page is
考虑以下用于测试登录控制器操作的测试:
public function testLoginWithWrongData() {
$response = $this->action('POST', 'BlogController@postLogin', ['email' => 'jesus@jesus.com', 'password' => 'asdasdasd']);
$this->assertResponseStatus('302');
}
之所以可行,是因为如果我无法验证您的身份,我会将您重定向回来。但是,如果我对您进行身份验证,我也会重定向您...
所以....
在 rails 中,我会测试 重定向回登录表单 或 重定向到仪表板。
此测试的控制器操作如下所示:
public function postLogin(Request $request) {
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:3'
]);
$credentials = $this->getCredentials($request);
if (Auth::attempt($credentials)) {
Session::flash('success', "Welcome back Adam. Care to manage your blogs?");
return redirect()->route('blogs');
} else {
Session::flash('error', "I'm sorry. Who are you? I don't recognize you.");
return redirect()->back();
}
}
那么我必须用什么测试方法来给这个测试更多的实质......而不是这里有一些不正确或正确的细节,顺便说一句,重定向......
您可以在重定向后查看您所在的页面。类似于:
$this->see('Welcome back')->onPage('/blogs');
成功登录后:
$this->see('sorry.')->onPage('/'); // whatever your login page is