模拟框架返回具有不同名称和类型的类

Ser*_*ize 7 php phpunit unit-testing mocking mockery

我正在尝试创建一个模拟来满足使用此代码的类型提示(Mockery):

return \Mockery::mock('\Contracts\Helpers\iFileSystemWrapper');
Run Code Online (Sandbox Code Playgroud)

或者这个(PHPUnit):

return $this->getMock('\Contracts\Helpers\iFileSystemWrapper');
Run Code Online (Sandbox Code Playgroud)

但返回的模拟称为Mockery\Mock ObjectMock_iFileSystemWrapper_a5f91049.当它不是我需要的任何一个框架的实例时,我该如何键入检查?

为什么模拟框架试图加载真正的类?如果我想要真正的课程,我会包括真正的课程.

这个问题在编写测试时已经减慢了很多次,我只是抛出类型暗示窗口并检查类名,或者只是使用生产对象,因为模拟很难使用.

小智 -2

您需要使用特殊函数来检查基类。像这样的事情:

$mock = $this->getMock('MyClass');
$this->assertInstanceOf('MyClass', $mock);
Run Code Online (Sandbox Code Playgroud)