3

我正在遵循 Zend Framework 2 的单元测试网站上的指南。我的“骨架”应用程序与本教程略有不同,因为我集成了 Doctrine 2 而不是使用 Zend 内置的 DB 适配器。

在 AlbumController.php 的 indexAction() 中,我使用以下代码段检索所有专辑记录:

return new ViewModel(array(
        'albums' => $this->getEntityManager()->getRepository('Album\Entity\Album')->findAll()    
));

如何在 IndexControllerTest.php 文件中的 testIndexActionCanBeAccessed() 中模拟它,以便它返回虚拟值?

感谢帮助。

4

1 回答 1

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 测试的方式,语法可能会有所不同,但这些步骤应该对您有所帮助。

于 2013-10-03T16:34:22.703 回答