2016-08-20 10 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が存在しないことを知っていますが、私はそれを私がやろうとしていることの例として挙げています)。 $oは(非推奨)(非推奨)getMock()getMockWithoutInvokingTheOriginalConstructor()createMock()(ベストプラクティス)、createConfiguredMock()createPartialMock()getMockBuilder()、などの方法を使用して作成されたテストダブルのとき

+2

あなたのモックは 'isMock()'メソッドが呼び出されたときにtrueを返すように設定できます: '$ object_mock-> method( 'isMock') - > willReturn(true);' –

+0

@MarkBaker素晴らしいアイデア。しかし、私はそれが偽でないならば、それが偽に戻ってくる必要もあります。 – Ataraxia

答えて

3

$o instanceof PHPUnit_Framework_MockObject_MockObjecttrueに評価されます。

関連する問題