Ошибка показа двух строк одинакова в модульном тестировании - PullRequest
2 голосов
/ 02 апреля 2019

Я создал небольшой проект Laravel и применяю модульное тестирование для своего проекта.Когда я заполняю неверные учетные данные в функции, он не перенаправляет на страницу входа в систему и выдает ошибку на терминале, говорящую «Не удалось», утверждая, что две строки равны.Вот мой код ...

$credentials = [
    'email' => 'test@gmail.com',
    'password' => 'wrongcode'
];

$this->post('/login', $credentials)->assertRedirect('/login');

Но когда я изменяю assertRedirect('/login') на assertRedirect('/'), он отлично работает

$credentials = [
    'email' => 'test1234@gmail.com',
    'password' => '98756412'
];

$this->post('/login', $credentials)->assertRedirect('/');

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

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

0 голосов
/ 02 апреля 2019

Для отдельного сценария должно быть 2 разных метода, как показано ниже.

public function testCorrectCredential() {

  $credentials = [
    'email' => 'test1234@gmail.com',
    'password' => '98756412'
  ];

   $this->post('/login', $credentials)->assertRedirect('/');
}

public function testInCorrectCredential() {

      $credentials = [
        'email' => 'incorrect@gmail.com',
        'password' => '98756412'
      ];

       $this->post('/login', $credentials)->assertRedirect('/incorrect-url');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...