Laravel - 了解测试的工作原理

时间:2016-07-09 15:15:02

标签: laravel testing

我是框架laravel 5.2的初学者

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

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

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

然后我做了这个测试:

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

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

当我运行脚本时,我出现了故障

  

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

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

多米尼克

1 个答案:

答案 0 :(得分:3)

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

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

与此同时,下面有一些解决方法;

1)使用*project*/vendor/bin/phpunit

,而不是使用全局PHPUnit

2)降级你的PHPUnit版本,以便Laravel与之兼容,为此,运行以下命令;

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

希望这会有所帮助。