Привет, допустим, я хочу протестировать запуск функции из класса A и использую Mockery для имитации внешнего зависимости:
class A {
protected myB;
public function __construct(B $param) {
$this->myB = $param;
}
protected function doStuff() {
return "done";
}
public function run() {
$this->doStuff();
$this->myB->doOtherStuff();
return "finished";
}
}
class B {
public function doOtherStuff() {
return "done";
}
}
Итак, я написал тест так:
public function testRun() {
$mockB = Mockery::mock('overload:B');
$mockB->shouldReceive('doOtherStuff')
->andReturn("not done");
$mockA = Mockery::mock(A::class)->makePartial()->shouldAllowMockingProtectedMethods();
$mockA->shouldReceive('doStuff')->andReturns("done");
$mockA->run();
}
Это вызывает у меня такое исключение: Ошибка: вызов функции-члена doStuff () при null
Я пробовал разные варианты имитации внутренней зависимости B, которая вызывается в функции запуска, но всегда заканчиваюсь исключением.
Что я здесь делаю не так?