對(duì)特質(zhì)(Trait)與抽象類進(jìn)行模仿

2018-02-24 15:42 更新

對(duì)特質(zhì)(Trait)與抽象類進(jìn)行模仿

getMockForTrait() 方法返回一個(gè)使用了特定特質(zhì)(trait)的仿件對(duì)象。給定特質(zhì)的所有抽象方法將都被模仿。這樣就能對(duì)特質(zhì)的具體方法進(jìn)行測(cè)試。

Example?9.18.?對(duì)特質(zhì)的具體方法進(jìn)行測(cè)試

<?php
trait AbstractTrait
{
    public function concreteMethod()
    {
        return $this->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() 方法返回一個(gè)抽象類的仿件對(duì)象。給定抽象類的所有抽象方法將都被模仿。這樣就能對(duì)抽象類的具體方法進(jìn)行測(cè)試。

Example?9.19.?對(duì)抽象類的具體方法進(jìn)行測(cè)試

<?php
abstract class AbstractClass
{
    public function concreteMethod()
    {
        return $this->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());
    }
}
?>
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)