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

时间:2017-04-11 12:46:03

标签: php phpunit

我有一个抽象类如下:

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;
    }
}

这是unittest:

  $data = array('informations','data');
  $result = Entity::SettingData($data);
  $this->assertTrue($result);

我想测试方法SettingData,但是我得到了错误:

Undefined property: Entity::$logger

我该如何测试这种方法?

任何帮助都是真正的帮助。

1 个答案:

答案 0 :(得分:0)

您无法测试抽象类。 您必须创建派生类。然后,您创建该类的对象,并使用可测试参数调用构造函数。 之后,您可以测试SettingData。