Проверка входа в Laravel не удалась в phpunit - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь выполнить проверку входа с помощью phpunit в laravel. У меня 5,5, поэтому метод посещения не поддерживается. Вот что я делаю

public function testLoginPost(){
Session::start();

$response = $this->call('POST', 'login', [
    'email' => 'sokhter@yahoo.com',
    'password' => '123456',
    '_token' => csrf_token()
]);
$this->assertEquals(200, $response->getStatusCode());
$this->assertEquals('auth.login', $response->original->name());}

`` `

c:\wamp64\www\fundtheneedy\tests\Unit>phpunit Fundtheneedy
PHPUnit 6.5.8 by Sebastian Bergmann and contributors.

.F                                                                  2 / 2 (100%)

Time: 321 ms, Memory: 14.00MB

There was 1 failure:

1) Tests\Unit\Fundtheneedy::testLoginPost
Failed asserting that 302 matches expected 200.

C:\wamp64\www\fundtheneedy\tests\Unit\Fundtheneedy.php:30

FAILURES!
Tests: 2, Assertions: 2, Failures: 1.
```

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Учитывая, что вы всегда будете перенаправлены, независимо от успешного или неудачного входа в систему, вам придется подтвердить полученный ответ.

Чтобы проверить успешный вход, вы должны сделать:

$response->assertStatus(302);
$response->assertRedirect('http://your-website.com/user/dashboard');

Чтобы проверить неудачный вход в систему, вы должны сделать:

$response->assertStatus(302);
$response->assertRedirect('http://your-website.com/auth/login');

Этого должно быть достаточно.

PS: Редактировать URL-адреса так, чтобы они соответствовали всему, что у вас есть, очевидно.

0 голосов
/ 16 мая 2018

Если вы просто посмотрите на код ответа, это всегда будет 302, который является кодом ответа для URL Redirect, поскольку он будет перенаправлять независимо от того, произойдет ли сбой.

Вместо этого вы можете посмотреть, есть ли ошибки в сеансе, что является обходным решением, упомянутым в этом посте здесь.

$this->assertSessionMissing('errors');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...