単体テストしようとしているコードは次のとおりです。
public function getDao () {
$dao = '';
if (isset($this->_dao)) {
$dao = $this->_dao;
} else {
$dao = new $this->_daoClassName;
}
return $dao;
}
クラスは抽象クラスであり$_daoClassName
、保護された変数です。各具象クラスは値を設定します$_daoClassName
このコードを単体テストするにはどうすればよいですか? PHPUnit の $this->getMockForAbstractClass() を使用しようとしていますが、保護されたメソッドをオーバーライドできるとは思いません。あるいは、この getDao() メソッドで使用すべきより良いパターンはありますか?