2012-09-07 47 views
1

我在Symfony2项目中的所有学说实体中做了一些单元测试。我在一个类UserTest中测试setter/getter,并且在类UserDbTest中使用db persistance设置/ getter,所有文件都在Entity测试文件夹下的文件夹 测试这两个文件是否合适很好,以及什么是最好的地方把Db班?在symfony2中放置phpunit数据库测试的最佳地点

Thx您的建议!

回答

6

如果您在Entity类中没有自定义数据库逻辑(您不应该拥有这些逻辑),则不必创建单元和功能测试。学说被测试,即确保persist/flush正常工作,您不必重复这些测试。如果你想测试,例如,如果你的查询工作正常,我个人有一个XYManager类(其中XY是实体的名称),其中我把所有的自定义数据库逻辑(和进一步抽象)放入它。我的方法受到FOSUserBundle的启发(请参阅他们的UserManager)。

在我的项目无论是EntityEntityManger类在包的Entity文件夹,并为这些类的测试是在Tests/Entity文件夹中。由于功能测试比单元测试花费的时间要长很多,我使用PHPUnit的注释将它们分开。我将@group unit添加到所有不需要数据库的测试,并且不是所有需要数据库的测试都是WebTestCase@group functional,或者是WebTestCase

如果我只想执行单元测试,我可以做

phpunit -c app/ --group unit` 

phpunit -c app/ --group functional 

只会执行功能测试。

phpunit -c app/ 

将执行功能和单元测试。

+0

Thx for your answer – EAdel