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'
Надеюсь, это поможет.