Я использую Prophecy в своем модульном тесте, я хочу смоделировать все методы в пользовательском объекте
class User {
public function age()
{
return date("Y") - $this->born();
}
public function born()
{
// Database call or anything else, it's a black box !
}
}
Я хочу проверить свой возраст, когда изменился метод рождения
public function testProphecyAge()
{
$user = $this->prophesize(User::class);
$user->born()
->willReturn(2018)
->shouldBeCalled();
$user = $user->reveal();
$this->assertEquals(1, $user->age());
}
Я получаю ошибку
Prophecy\Exception\Call\UnexpectedCallException: Unexpected method call on Double\User\P1