Как протестировать статический метод абстрактного класса с phpunit в PHP - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно смоделировать статический метод класса.Но в phpunit: 4 и более поздних версиях макетирование статического метода невозможно (я получаю исключение с сообщением «Статический метод« findBy »не может быть вызван для фиктивного объекта»).Как мне нужно настроить макет, чтобы получить успешный тест?

Я пытался создать макет класса без phphunit вручную.Что-то вроде tests/Mocks/MyClass.php, расширяющее абстрактный класс и реализующее мой статический метод /

interface IdentityInterface
{
     // this method calling first in other component
    public static function findBy(string $number, ?string $trunk): ?IdentityInterface;
}

abstract class Identity implements IdentityInterface
{
    // this method and other calling after findBy method
    public function getName(): string
    {
        return $this->name; // need to cover
    }
}

Мой статический метод должен возвращать свой экземпляр, чтобы использовать другие внутренние методы, которые мне нужно охватить.

...