Имеется два класса. В классе Two создаем экземпляр класса One в переменную $one.
class One
{
public function getOne()
{
return 1;
}
}
class Two
{
public function getOnePlusTwo()
{
$one = new One();
return $one->getOne() + 2;
}
}
Тест, в котором подменяю возвращаемое значение метода getOne на 2. Ожидаю 4. Но при запуске теста метод getOne все равно возвращает 1, то есть getMockBuilder
никак не влияет глобально на метод, всего лишь делает копию и орудует ей
public function testGetOnePlusTwo()
{
$mock = $this->getMockBuilder(One::class)
->getMock();
$mock->method('getOne')
->willReturn(2);
$two = new Two();
$this->assertEquals(4, $two->getOnePlusTwo());
}
При вызове $mock->getOne возвращается 2, все правильно. но при запуске теста getOne возвращает 1.
Не понимаю как замокать метод класса getOne в функции getOnePlusTwo, чтобы возвращать нужные значения. Подскажите?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я использую CURL для отправки файлаЭто работает хорошо, когда я отправляю файл
Переписываю некий код с яваскрипта на пхп, должен работать идентично
нужно добавить функционал что бы пользователь мог вносить в свой гугл календарь некоторые события, и если пользователь уже вошел в систему...
Для парсинга использую simpleDomParser