背景:
- 中等数据库架构(约70个表)
- 它们之间有很多外键和其他约束(非空等)
- 所有测试的共享数据库夹具
- 一些简单的拆解逻辑,在每次测试后截断“触摸”的表格,并将测试前的任何内容放在那里
- 通过JPA / Hibernate / Toplink或其他一些对象关系映射解决方案查询数据库
现在,最大的问题是我们想要向DB添加一些记录,我们现在必须手动执行此操作,即通过sql脚本(在相关测试之前执行)。
这导致我们几乎每次测试都会出现Mystery Guest问题。
你会如何处理?
我的想法如下:
- 为每个测试创建一个新的夹具将是一个过度杀伤,因为我们有很多约束
- 另一种方法是创建一些oracle,给定一个对象的存根,将返回一个准备放入DB的对象,即不违反任何约束的对象。
当然,这个好的解决方案并不受我们的经理们的喜爱,因为我们不得不花一点时间来创造这样的野兽。