Есть ли способ издеваться над частным статическим методом с помощью насмешек? - PullRequest
0 голосов
/ 17 января 2019

Например, у меня есть класс SampleService, подобный следующему, теперь, как я могу написать модульный тест с PHPUnit для метода getName()? более конкретно, как я могу издеваться self::_getName(); с издевательством? Если это невозможно, каков наилучший подход / способ написания модульного теста для такого рода сценариев? Спасибо.

class SampleService implements Service
{    
    public function getName(){
        $name = self::_getName();
        return 'Mr. '.$name;
    }

    private static function _getName(){
        return 'Some Name';
    }
}

1 Ответ

0 голосов
/ 01 апреля 2019

Нет, и вы не должны использовать их в TDD. Используйте их, только если вам никогда не придется издеваться над ним.

А если вам нужно его смоделировать - переместите весь код в отдельный класс и смоделируйте этот класс.

...