Как стать автором
Обновить
3
0

Пользователь

Отправить сообщение

Еще раз спасибо за фидбек.


У нас в IDE (PhpStorm) Intelli Sens полноценно работает по такому phpDoc: подтягивает типы, подсказывает, как можно мокать по объекту PHPUnit_Framework_MockObject_MockObject, подсказывает, что входит в изначальную сигнатуру объекта. Именно поэтому (полноценно работающий Intelli Sens) такой вариант оказался очень удобным для нас.


Извиняюсь, что не указал это в исходной статье.

Спасибо за указание интересных библиотек.


Сначала отвечу на вопрос по поводу чистого кода теста и чистых phpDoc блоков. Да, вы правильно отметили, что механическое задание объектов для мокирования все равно должно присутствовать в том или ином виде. В нашем случае при указании объектов для мокирования тест получался настолько большим — из-за большего числа зависимостей в старом коде, который необходимо покрывать тестами, — что вариант с раздутыми аннотациями вкупе с возможностями IDE оказался предпочтительней.


В вашем предложении функцию createMock надо явно вызывать и явно указывать ее className, а также явно держать поле для нее: это следствие того, что у нас соглашение не использовать магические ассоциативные массивы, например, из-за плохого хинтинга. Тем не менее, соглашусь, что с случае хорошо написанных классов, которые тестируются, предложенный вариант, возможно, не является оптимальным.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность