1

我在 Symfony2 项目中的所有学说实体中进行了一些单元测试。我在 UserTest 类中测试 setter/getter,还在 UserDbTest 类中测试具有 db 持久性的 setter/getter,所有文件都在Entity测试文件夹下的文件夹中,测试两者是否是一个好主意,以及放置的最佳位置是什么?数据库类?

谢谢你的建议!

4

1 回答 1

6

如果您的Entity类中没有自定义数据库逻辑(您不应该有),则不必创建单元和功能测试。教义经过测试,即确保persist/flush正常工作,您不必重复这些测试。

但是,如果您想测试,例如,如果您的查询正常工作,我个人有一个XYManager类(XY实体的名称在哪里),我将所有自定义数据库逻辑(以及进一步的抽象)放入其中。我的方法受到 FOSUserBundle 的启发(参见他们的UserManager)。

在我的项目中,theEntityEntityMangerclasses 都在Entitybundle 的文件夹中,并且这些类的测试在Tests/Entity文件夹中。由于功能测试比单元测试花费更长的时间,我使用@groupPHPUnit 的注释将它们分开。我将添加@group unit到所有不需要数据库且不属于的测试WebTestCase以及@group functional所有需要数据库或属于WebTestCase.

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

phpunit -c app/ --group unit`

phpunit -c app/ --group functional

只会执行功能测试。

phpunit -c app/

将执行功能测试和单元测试。

于 2012-09-07T11:01:39.463 回答