Потому что у него не может быть параметров, а для доступ в БД они необходимы.
Я бы ещё добавил, что кроме неявных параметров вашего обжекта вы ещё получаете неявную зависимость других классов от него. Что сильно усложняет процесс тестирования -- вам надо помнить, что нужно мокать глобальное состояние, причём в тех местах, которые явно не презентуют этого. Если бы у вас был обычный класс, вы бы а) имели явные параметры для его создания, б) его инстансы тоже явно передавали бы в те места, где он нужен, таким образом имея возможность отследить происходящее от начала и до конца, а также подменить при надобности ваш настоящий класс, общающийся с БД, на заглушку в тестах. Насколько это для вас критично, решать, конечно, вам.
спасибо! Уже сделал обычный класс
Обсуждают сегодня