2010-09-15 2 views
1

У меня есть следующий заводский класс, у которого есть клиент $ зависимости. Я переместил зависимость к фабричному классу, поскольку он впервые появился в классе Service_Service1, чтобы я мог проверить класс службы. Но как я могу проверить заводский класс?PHPUnit: проверить класс фабрики с зависимостью

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

ответ

4

Я не уверен, что этот вопрос, но если это то, как незавершенное жестко закодированные зависимости, взгляните на этой статье по автору PHPUnit:

Лучше всего было бы внедрить экземпляры этих классов вместо их жесткого кодирования. В качестве альтернативы вы можете сделать свои свойства classnames в Factory, чтобы вы могли обменять то, что он будет создавать.

+0

Я просто искал решение о том, как изменить класс фабрики, подлежащий тестированию без жестко закодированных зависимостей, так что спасибо! – tom

+0

Есть ли возможность получить «php-test-helpers/php-test-helpers» в качестве расширения для Windows DLL php? Я попробовал 'php_uopz.dll', но я не могу получить' uopz_overload (ZEND_NEW, function() {}); 'работать в любом случае. Кроме того, я не могу найти никаких других предложений о том, как на заводе-тестировании заводов :-( –

+1

@ PhilippGächter не знаю. Я даже не уверен, что тестовые помощники по-прежнему поддерживаются в наши дни. – Gordon

Смежные вопросы