Проблема заключается в том, что ваш тестовый макет, в данном случае ParameterHandler пророк, высмеивает метод get с поведением по умолчанию, возвращая ноль. Не было сказано, что делать при вызове метода, поэтому file_get_contents () не получит путь к файлу.
Прежде всего, вы должны сказать своему Пророку вернуть правильный путь к файлу:
$this->parameterHandler = $this->prophesize(ParameterBagInterface::class);
$this->parameterHandler->get('images.default_avatar')->willReturn('/your/path/avatar.jpg');
Теперь это скажет Пророку вернуть / your / path / avatar.jpg , если метод get () вызывается с параметром images.default_avatar . Это должно работать, если вы можете правильно настроить путь к аватару по умолчанию.
Вы могли бы даже сказать Пророку, что этот метод ДОЛЖЕН быть вызван, добавив -> shouldBeCalled () , но тогда вы бы протестировали внутреннюю часть вашего фактического протестированного класса (есть плюсы и минусы для этого типа тестирование и зависит от тестового примера):
$this->parameterHandler->get('images.default_avatar')->willReturn('/your/path/avatar.jpg')->shouldBeCalled();
Следующая задача, вероятно, заключалась бы в том, чтобы абстрагировать вызов file_get_contents () в новый класс, который также можно смоделировать (например, по соображениям скорости и памяти).