Php 如何在使用其他方法的抽象类中测试方法

Php 如何在使用其他方法的抽象类中测试方法,php,phpunit,Php,Phpunit,我有一个抽象类,如下所示: abstract class Entity { public function __construct($configFile, $logger, $database) { $this->configFile = $configFile; $this->logger = $logger; $this->database = $database; } public function SettingData(

我有一个抽象类,如下所示:

abstract class Entity
{

  public function __construct($configFile, $logger, $database)
  {
    $this->configFile = $configFile;
    $this->logger = $logger;
    $this->database = $database;
  }


  public function SettingData(array $info)
  {
        $this->logger->debug('setting the information'.serialize($info));
        $info = $info.'debug';
        $this->formatData();
        return true;
    }
}
以下是单元测试:

  $data = array('informations','data');
  $result = Entity::SettingData($data);
  $this->assertTrue($result);
我想测试方法SettingData,但得到错误:

Undefined property: Entity::$logger
我应该如何测试这个方法


任何帮助都是必要的。

您不能测试抽象类。 您必须创建一个派生类。然后创建该类的对象,并使用可测试参数调用构造函数。
之后,您可以测试设置数据。

@AlexBlex否则如何调用该方法?无法实例化抽象类