我有一个遗留类,我很快想为它编写一些测试。不幸的是,我们在构造函数中有一个单例调用,而且目前没有足够的时间来重构它。

function __construct(){

   $this->_dbConnect = DbConnect::getInstance();
  // very long constructer (sigh) omitted below ...
}

这样做是否可以接受,以便获得可模仿的遗留代码:
function __construct(DbConnect $dbConnect = null){

    $this->_dbConnect = isset($dbConnect) ? $dbConnect : DbConnect::getInstance();

   // <snip>
}

最佳答案

如果你只想测试这个类-是的,这是正常的代码。
抱歉,您的问题已包含答案:)

10-08 06:40