我有同样的问题,我以不好的方式解决了它(但它解决了我的具体问题)。
phpunit 测试没有找到我的工厂视图助手,但它正在找到我的可调用对象。然后,我做了以下事情:
public function getViewHelperConfig() {
return array(
'factories' => array(
'aplicationBar' => function($service) {
$applicationBar = new ApplicationBar();
return $applicationBar;
},
),
'invokables' => array(
'applicationBar' => 'Application\View\Helper\ApplicationBar',
),
);
当我使用浏览器时,它使用正确的工厂。当我使用 phpunit 时,它使用可调用对象。
当我需要设置一些参数时,就会出现问题。然后,我设置了一些默认参数,这些参数仅供 phpunit 使用。
namespace Application\View\Helper;
use Zend\View\Helper\AbstractHelper;
class ApplicationBar extends AbstractHelper {
protected $parameter;
public function __construct($parameter = 'something') {
$this->parameter = $parameter;
}
public function __invoke() {
return $this->parameter;
}
}
这不是最好的解决方案,但如果我以更好的方式解决它,我会在这里发布。