Я пытаюсь настроить phpunit-тесты для проекта с Laravel 5.1.40 (LTS), php 5.6.28 и phpunit 4.8.27. Простите, если эта проблема была решена раньше, но я ничего не мог найти.Laravel test phpunit press NotFoundHttpException
public function testAdminLogin()
{
$this->visit('/auth/login')
->type('[email protected]', 'email')
->type('1234567890', 'password')
->press('Login');
}
Там, кажется, проблема с press('STRING')
как с <button>
и <input>
, как кнопки отправки. Ниже приведено сообщение об ошибке.
1) ExampleTest::testAdminLogin
A request to [http://localhost/auth/login] failed. Received status code [500].
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:165
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:63
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:85
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:684
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:671
C:\xampp\htdocs\project\tests\ExampleTest.php:52
C:\xampp\php\pear\PHPUnit\TextUI\Command.php:176
C:\xampp\php\pear\PHPUnit\TextUI\Command.php:129
Однако, когда я изменить <button>
тег к <a>
тегу, добавить идентификатор к нему, и заменить press(STRING)
функции с функцией click(ID)
, тест пройден. Я мог бы изменить <button>
на <a>
, но это будет только временное исправление, и будущие случаи могут не позволить изменять тег.
Ниже представлена HTML-форма с тегом <button>
.
<form action="/auth/login" method="POST" class="form-horizontal">
<div class="form-group">
<label for="email" class="col-sm-4 control-label">E-Mail</label>
<div class="col-sm-6">
<input type="email" name="email" class="form-control" value="{{ old('email') }}" autocomplete="off">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-4 control-label">Password</label>
<div class="col-sm-6">
<input type="password" name="password" class="form-control" autocomplete="off">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-6">
<button type="submit" class="btn btn-default btn-login">Login</button>
</div>
</div>
</form>
Используете ли вы 'Auth :: routes()' или определяете маршруты входа/регистрации вручную? –
Я использую версию laravel 5.1, где она определена вручную. –