是否可以模拟
EntityRepository::findOneBy{$field}($value)
功能?
使用:
->getMock('EntityRepository')
->expects($this->any())
->method('findOneByField')
始终解析为 null,因为findOneByField
它不是真正的函数,而是由__call()
. 至少我认为这是问题所在..
是否可以模拟
EntityRepository::findOneBy{$field}($value)
功能?
使用:
->getMock('EntityRepository')
->expects($this->any())
->method('findOneByField')
始终解析为 null,因为findOneByField
它不是真正的函数,而是由__call()
. 至少我认为这是问题所在..
您可以模拟该__call
方法。举个简单的例子:
班级:
class A {
public function __call($fname, $args) {
if($fname === 'test') {
return 'test';
}
}
}
测试:
class ATest extends PHPUnit_Framework_TestCase
{
public function testA() {:
$mock = $this->getMock('A');
$mock->expects($this->any())
->method('__call')
->with('test')
->will($this->returnValue('test'));
var_dump($mock->test());
}
}
您可以对EntityRepository
. 我只是没有一个手来测试。