如何自动化Doctrine2实体和映射中的关系测试?

时间:2012-09-17 20:40:29

标签: doctrine-orm relationship entities regression-testing

我的团队和我有一个大型Web应用程序,我们正在移植以使用包含SymfonyDoctrine2框架进行数据访问。我们刚刚开始时,我们想知道稍后对entity关系的回归测试。

我们拥有大量从数据库模式自动生成的Doctrine实体,现在正在relationship mapping区域内专门检查和整理每个实体。一旦映射完成(使用doc block annotations)并且我们通过简单脚本确认实体正在执行正确的数据访问,那么确保映射的最佳方法是什么,因此实体的功能在将来不会中断。 / p>

我们正在为所有实体编写单元测试作为独立单元,模拟所需的依赖项,但这并不一定能保护我们免受正在编辑的注释注释或模式更改并破坏当前实体关系。

有什么想法?这里有人有同样的问题吗?

1 个答案:

答案 0 :(得分:1)

我们为每个顶级实体创建了我们所谓的功能测试,以测试子实体与该实体之间的关系。基本上,顶级实体被实例化,并且模拟数据用于填充它,然后所有其实体依赖性被添加自身填充有模拟数据。然后,这一切都在一次操作中持久保存到数据库中。然后从数据库中读回实体并测试与原始数据的相等性。它比这更复杂(尤其是相等测试),但是如果任何关系映射都被更改或窃听,那么这个测试会立即失败,并给我们一个调查问题。