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