如何在PHP中使用phpunit测试抽象类的静态方法

时间:2019-02-04 14:23:06

标签: php function static phpunit abstract

我需要模拟类的静态方法。但是在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
    }
}

我的静态方法必须返回其自身的实例,才能使用我需要介绍的其他内部方法。

0 个答案:

没有答案