2016-08-20 78 views
2

我想斷言一個傳入PHPUnit測試方法的值/對象是由getMockBuilder初始化的模擬。例如: -確定一個對象是否是一個PHPUnit模擬

class Example_Test extends PHPUnit_Framework_TestCase 
{ 
    ... 

    public function testMethod(Some_Class $object_mock) 
    { 

     // since methods like "expects" will be used below, 
     // this needs to be a mock 
     assert('$this->isMock($object_mock)'); 

     ... 

     $object_mock->expects($this->atLeastOnce()) 
        ->method('reallyCoolThingThatMustHappen') 
        ->with(
         $this->equalTo('absolutely_necessary_argument') 
        ); 

     ... 

    } 
} 

有誰知道可以用來斷言$object_mock是PHPUnit的模擬的方法嗎? (我知道isMock不存在,但我把它放在那裏作爲我想要做的一個例子)。

+2

當你調用'isMock()'方法時,你的模擬可以設置爲true:'$ object_mock-> method('isMock') - > willReturn(true);' –

+0

@MarkBaker好主意。但如果它不是模擬的,我還需要它返回false。 – Ataraxia

回答

3

$o instanceof PHPUnit_Framework_MockObject_MockObject評估爲true$o是已使用getMock()(不建議使用),getMockWithoutInvokingTheOriginalConstructor()(不建議使用),createMock()(最佳實踐),createConfiguredMock()createPartialMock()getMockBuilder()等方法創建了一個測試兩倍。

相關問題