作者:灬处男求包养灬 | 来源:互联网 | 2023-05-18 18:47
如果我嘲笑库方法find
我得到预期的结果,但如果我叫要么findBy
,findOneBy
,findOneById
我总是得到null
.
代码示例:
$mock->expects($this->once())
->method('getId')
->will($this->returnValue(1));
$mockRepository->expects($this->any())
->method('findBy') //if here I use 'find' works for all other cases always null
->will($this->returnValue($mock));
有这种情况发生的原因吗?是否有可能嘲笑Doctrine2的"魔法"方法findById
或者findOneById
?如果是的话,我的方法出了什么问题?
1> Matteo..:
如评论中所述,可以通过模拟魔术方法调用来实现.例如:
// Mocked return value
$mock->expects($this->once())
->method('getId')
->will($this->returnValue(1));
// Example of repo mocking
// $mockRepository= $this->getMock('Doctrine\ORM\EntityRepository', array(), array(), '', false);
$this->mockRepository
->expects($this->at(1))
->method('__call')
->with('findBy')
->will($this->returnValue($mock));
希望这有帮助