我有以下工厂类,它有一个依赖$ client。我将依赖项移动到工厂类,因为它首次出现在Service_Service1类中,因此我可以测试服务类。但是我如何测试工厂类?
class Factory implements Service
{
public static function factory($service)
{
$config = Zend_Registry::get('config');
switch ($service) {
case Service::Service1:
$client = new Zend_Soap_Client(
$config->url,
array(
'encoding' => 'UTF-8'
)
);
$pickupPoint = new Service_Service1($client);
break;
}
}
}
答案 0 :(得分:4)
我不确定问题是什么,但是如果它是如何存根硬编码的依赖项,请看PHPUnit的作者的这篇文章:
最好的方法是注入这些类的实例而不是硬编码。作为替代方案,您可以在Factory中创建其类名属性,以便您可以交换实例化的内容。