我在Symfony2项目中的所有学说实体中做了一些单元测试。我在一个类UserTest中测试setter/getter,并且在类UserDbTest中使用db persistance设置/ getter,所有文件都在Entity
测试文件夹下的文件夹 测试这两个文件是否合适很好,以及什么是最好的地方把Db班?在symfony2中放置phpunit数据库测试的最佳地点
Thx您的建议!
我在Symfony2项目中的所有学说实体中做了一些单元测试。我在一个类UserTest中测试setter/getter,并且在类UserDbTest中使用db persistance设置/ getter,所有文件都在Entity
测试文件夹下的文件夹 测试这两个文件是否合适很好,以及什么是最好的地方把Db班?在symfony2中放置phpunit数据库测试的最佳地点
Thx您的建议!
如果您在Entity
类中没有自定义数据库逻辑(您不应该拥有这些逻辑),则不必创建单元和功能测试。学说被测试,即确保persist
/flush
正常工作,您不必重复这些测试。如果你想测试,例如,如果你的查询工作正常,我个人有一个XYManager
类(其中XY
是实体的名称),其中我把所有的自定义数据库逻辑(和进一步抽象)放入它。我的方法受到FOSUserBundle的启发(请参阅他们的UserManager)。
在我的项目无论是Entity
和EntityManger
类在包的Entity
文件夹,并为这些类的测试是在Tests/Entity
文件夹中。由于功能测试比单元测试花费的时间要长很多,我使用PHPUnit的注释将它们分开。我将@group unit
添加到所有不需要数据库的测试,并且不是所有需要数据库的测试都是WebTestCase
和@group functional
,或者是WebTestCase
。
如果我只想执行单元测试,我可以做
phpunit -c app/ --group unit`
和
phpunit -c app/ --group functional
只会执行功能测试。
phpunit -c app/
将执行功能和单元测试。
Thx for your answer – EAdel