Пророчество высмеивает все методы объекта - PullRequest
0 голосов
/ 06 октября 2019

Я использую 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
...