将phpunit DB测试放在symfony2中的最佳位置



我在Symfony2项目中的所有条令实体中进行了一些单元测试。我在类UserTest中测试setter/getter,在类UserDbTest中测试具有db持久性的setter/getters,所有文件都在测试文件夹下的Entity文件夹中测试这两者是一个好主意吗?放置Db类的最佳位置是什么?

谢谢你的建议!

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

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

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

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

phpunit -c app/ --group unit`

phpunit -c app/ --group functional

将只执行功能测试。

phpunit -c app/

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

相关内容

  • 没有找到相关文章

最新更新