如何在Symfony2 ORM实体上单元测试getId()方法?

时间:2015-10-08 12:05:58

标签: unit-testing symfony

我想对我的所有目录实体方法进行单元测试,并且在测试getter getId()时遇到问题。 当我创建目录(新目录())时,没有Id设置,也没有setId()方法!

我的第一步是写mok:

public function testGetId()
{
    $category = $this->getMock('\Dimas\CatalogBundle\Entity\Category');
    $category->expects($this->any())
        ->method('getId')
        ->will($this->returnValue(352));
    $this->assertEquals(352, $category->getId());
}

但是这个虚拟测试没有测试我的实体!

测试getId()方法的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您已经生成了ID(通过Doctrine,数据库自动增量或其他内容),那么您将测试Doctrine(等)代码。

要正确测试getId(),您必须自己设置ID,无论是通过构造函数(首选)还是设置器。

我个人更喜欢使用UUID的第二种方法。您可以找到更多信息with example here