Laravel - 了解测试的工作原理

Dom*_*Dom 12 testing laravel

我是框架laravel 5.2的初学者

我想了解单元测试的工作原理.我做了这个测试:

public function testPageLogin()
{
    $this->visit('/login')
    ->see('Connexion');
}
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时:一切都很好.

然后我做了这个测试:

$this->visit('/login')
     ->type('toto.toto@gmail.com', 'email')
     ->type('toto', 'password')
     ->check('souvenir')
     ->press('Connexion')
     ->seePageIs('/login');
Run Code Online (Sandbox Code Playgroud)

当然,html页面中存在字段'email','password','souvenir'.使用这些值时,必须显示页面"login",因为这些值在数据库中是未知的.

当我运行脚本时,我失败了

Illuminate\Contracts\Container\BindingResolutionException:目标[Illuminate\Co ntracts\Debug\ExceptionHandler]不可实例化.在748行的C:\ wamp\www\ecole\vendor\laravel\framework\src\Illuminate\Container\Container.php中

当然,我必须在某处做错事,但我不知道在哪里.任何帮助将不胜感激.留言Merci.

多米尼克

Jay*_*mon 3

这是使用更高版本的 PHPUnit 时 Laravel 中的一个已知错误。我相信这个错误还没有被修复;

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'
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。