PHPUnit5.0中文手册9. 测试替身对特质(Trait)与抽象类进行模仿
上一篇:Prophecy 下一篇:对 Web 服务(Web Se...

对特质(Trait)与抽象类进行模仿

getMockForTrait() 方法返回一个使用了特定特质(trait)的仿件对象。给定特质的所有抽象方法将都被模仿。这样就能对特质的具体方法进行测试。

Example 9.18. 对特质的具体方法进行测试


abstractMethod();
    }
    public abstract function abstractMethod();
}
class TraitClassTest extends PHPUnit_Framework_TestCase
{
    public function testConcreteMethod()
    {
        $mock = $this->getMockForTrait('AbstractTrait');
        $mock->expects($this->any())
             ->method('abstractMethod')
             ->will($this->returnValue(TRUE));
        $this->assertTrue($mock->concreteMethod());
    }
}
?>

getMockForAbstractClass() 方法返回一个抽象类的仿件对象。给定抽象类的所有抽象方法将都被模仿。这样就能对抽象类的具体方法进行测试。

Example 9.19. 对抽象类的具体方法进行测试


abstractMethod();
    }
    public abstract function abstractMethod();
}
class AbstractClassTest extends PHPUnit_Framework_TestCase
{
    public function testConcreteMethod()
    {
        $stub = $this->getMockForAbstractClass('AbstractClass');
        $stub->expects($this->any())
             ->method('abstractMethod')
             ->will($this->returnValue(TRUE));
        $this->assertTrue($stub->concreteMethod());
    }
}
?>
上一篇:Prophecy 下一篇:对 Web 服务(Web Se...