expect-6ren">
gpt4 book ai didi

php - 使用 PHPUnit 在 doctrine2 中模拟 findOneBy"field"

转载 作者:可可西里 更新时间:2023-11-01 00:31:24 26 4
gpt4 key购买 nike

如果我模拟存储库方法 find 我会得到预期的结果,但如果我调用 findByfindOneByfindOneById 中的任何一个,我总是得到 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));

发生这种情况有原因吗?是否可以像 findByIdfindOneById 一样模拟 Doctrine2 的“魔术”方法?如果是,我的方法有什么问题?

最佳答案

如评论中所述,可以通过模拟魔术方法调用来实现。例如:

 // 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));

希望对你有帮助

关于php - 使用 PHPUnit 在 doctrine2 中模拟 findOneBy"field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com