我正在关注Zend Framework 2的单元测试网站guide。我的'骨架'应用程序与教程略有不同,因为我集成了Doctrine 2而不是使用Zend的内置数据库适配器。
在我的AlbumController.php的indexAction()中,我使用以下代码片段来检索所有专辑记录:
return new ViewModel(array(
'albums' => $this->getEntityManager()->getRepository('Album\Entity\Album')->findAll()
));
如何在IndexControllerTest.php文件中的testIndexActionCanBeAccessed()中模拟它,以便它返回虚拟值?
感谢帮助。
答案 0 :(得分:1)
创建EntityManager的模拟
创建AlbumRepository的模拟
创建AlbumEntity的模拟
然后使用PHP UNIT你需要
create an $entityMock->expects($PHPUnit->once())->method('getRepository')->will($PHPUnit->returnValue($repositoryMock));
create a $repositoryMock->expects($PHPUnit->once())->method('findAll')->will($PHPUnit->returnValue(array($albumEntityMock));
取决于您实现PHPUnit测试的方式,语法可能会有所不同,但这些步骤应该会帮助您。