phpunit:测试时遇到致命错误

时间:2016-10-01 02:36:11

标签: php zend-framework phpunit

我正在研究Zend框架,我已经设置了所有内容但是在单元测试中我得到了一个致命的错误:

C:\ XAMPP \ htdocs中\ Zend的\模块\相册\试验>的PHPUnit PHP Catchable致命错误:传递给Zend \ ServiceManager \ ServiceManager :: __ construct()的Arugment 1必须是类型数组,给定对象,在C:\ xampp \ htdocs \ zend \ module \ Album \ test \ Bootstrap.php中调用第53行并在第144行的c:\ xampp \ htdocs \ zend \ vendorframework \ zend-servicemanager \ src \ ServiceManager.php中定义

Bootstrap.php第52-58行:

    $config = ArrayUtils::merge($baseConfig, $testConfig);
    $serviceManager = new ServiceManager(new ServiceManagerConfig());
    $serviceManager->setService('ApplicationConfig', $config);
    $serviceManager->get('ModuleManager')->loadModules();

    static::$serviceManager = $serviceManager;
    static::$config = $config;

ServiceManager.php第144-148行:

  public function __construct(array $config = [])
    {
       $this->creationContext = $this;
       $this->configure($config = []);
    }

请一些建议???

1 个答案:

答案 0 :(得分:1)

$serviceManager = new ServiceManager(new ServiceManagerConfig());
  

传递给Zend \ ServiceManager \ ServiceManager :: __ construct()的Arugment 1必须是类型数组,给定对象

错误告诉您ServiceManager期望数组作为参数。您传递的参数是new ServiceManagerConfig(),它是一个对象。

这是版本不匹配。

zendframework/zend-servicemanager ~2.0中,ServiceManager构造函数需要一个对象。

zendframework/zend-servicemanager ~3.0中,ServiceManager构造函数需要一个数组。

如果您使用的是zf skeleton application,请确保使用的是正确的版本。