Laravel - понять, как работают испытания

Я начинаю с рамки laravel 5.2

Я хочу понять, как работает unit test. Я сделал это испытание:

public function testPageLogin()
{
    $this->visit('/login')
    ->see('Connexion');
}

Когда я запускаю script: все в порядке.

Затем я сделал это испытание:

$this->visit('/login')
     ->type('[email protected]', 'email')
     ->type('toto', 'password')
     ->check('souvenir')
     ->press('Connexion')
     ->seePageIs('/login');

Конечно, на странице html есть поля "электронная почта", "пароль", "сувенир". И с этими значениями страница "login" должна отображаться, потому что эти значения не известны в БД.

Когда я запускаю script, у меня есть сбой

Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Co ntracts\Debug\ExceptionHandler] не работает. в C:\wamp\www\ecole\vendor \ laravel\framework\src\Illuminate\Container\Container.php в строке 748

Конечно, я должен что-то делать неправильно, но я не вижу, где. Любая помощь будет оценена. Merci.

Доминик

Ответ 1

Это известная ошибка в Laravel при использовании более поздней версии PHPUnit. Я считаю, что эта ошибка еще не исправлена;

https://github.com/laravel/framework/issues/10808

Тем временем, некоторые обходные пути ниже;

1) Вместо использования глобального PHPUnit используйте *project*/vendor/bin/phpunit.

2) Понизьте версию PHPUnit, чтобы Laravel был совместим с ней, для этого выполните следующие команды:

composer global remove phpunit/phpunit
composer global require 'phpunit/phpunit=~4.0'

Надеюсь, это поможет.