2014-01-08 3 views
0

Теперь, когда я использую контейнер IoC и DI со всеми моими проектами, я хотел бы узнать, как я должен был проверять свои коды, когда я использовал статическую фабрику (тогда я не тестировал какие-либо единицы тестирования) , Допустим, у меня есть следующий фрагмент кода.Как проверить метод, использующий статическую фабрику?

class TestFactory { 

    public static function create($something) { 
     switch($something) { 
      case 1: 
       return Dummy; 
       break; 
     } 
    } 

} 

class Client { 

    public function __construct() { 

     $this->aClass = TestFactory::create(1); 

    } 

} 

Если я хочу модульное тестирование Client класса, как я могу это сделать без использования DI или IoC контейнера?

ответ

1

2 пути:

  1. Убедитесь, что вы TestFactory работает нормально с тестовой базы и просто тестовый клиент с TestFactory работает. (рекомендуется)

  2. Наследовать класс клиента и вернуть __construct() объект-заглушку, если вы должны разделить Клиента как отдельный тестовый пример.

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