我在 Symfony2 项目中的所有学说实体中进行了一些单元测试。我在 UserTest 类中测试 setter/getter,还在 UserDbTest 类中测试具有 db 持久性的 setter/getter,所有文件都在Entity
测试文件夹下的文件夹中,测试两者是否是一个好主意,以及放置的最佳位置是什么?数据库类?
谢谢你的建议!
我在 Symfony2 项目中的所有学说实体中进行了一些单元测试。我在 UserTest 类中测试 setter/getter,还在 UserDbTest 类中测试具有 db 持久性的 setter/getter,所有文件都在Entity
测试文件夹下的文件夹中,测试两者是否是一个好主意,以及放置的最佳位置是什么?数据库类?
谢谢你的建议!
如果您的Entity
类中没有自定义数据库逻辑(您不应该有),则不必创建单元和功能测试。教义经过测试,即确保persist
/flush
正常工作,您不必重复这些测试。
但是,如果您想测试,例如,如果您的查询正常工作,我个人有一个XYManager
类(XY
实体的名称在哪里),我将所有自定义数据库逻辑(以及进一步的抽象)放入其中。我的方法受到 FOSUserBundle 的启发(参见他们的UserManager)。
在我的项目中,theEntity
和EntityManger
classes 都在Entity
bundle 的文件夹中,并且这些类的测试在Tests/Entity
文件夹中。由于功能测试比单元测试花费更长的时间,我使用@group
PHPUnit 的注释将它们分开。我将添加@group unit
到所有不需要数据库且不属于的测试WebTestCase
以及@group functional
所有需要数据库或属于WebTestCase
.
如果我只想执行我可以做的单元测试
phpunit -c app/ --group unit`
和
phpunit -c app/ --group functional
只会执行功能测试。
phpunit -c app/
将执行功能测试和单元测试。