确定对象是否是PHPUnit mock

时间:2016-08-20 22:26:08

标签: php unit-testing phpunit

我想声明传递给PHPUnit测试方法的值/对象是由getMockBuilder初始化的模拟。 E.g:

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并不存在,但我把它放在那里作为我尝试做的事情的一个例子。)

1 个答案:

答案 0 :(得分:3)

$o instanceof PHPUnit_Framework_MockObject_MockObject是使用true(已弃用),$o(已弃用),{{getMock()创建的测试双精度时,

getMockWithoutInvokingTheOriginalConstructor()评估为createMock() 1}}(最佳做法),createConfiguredMock()createPartialMock()getMockBuilder()等方法。