遗留数据库多表关联的 unit test

手上的项目是一个遗留系统。要在尽量保持原有数据库结构的情况下,用rails改写。
其中有些表是多表关联。而且在数据库中也存在数据丢失的情况。
就是说一个表里面的 foreign key 的值可能在另外那个表里面已经被删除了。
例如在 Rails 里: A has_one B, A和B 都有很多attributes.
如果

B.A 是nil
那么 B.A.attributes就会报错。nil.attributes
如果是 C has_many A的话,就更麻烦了。
B.A.C.attributes 就更可能出错了。

现在我采取的办法是用begin/rescue。
可是我想在做test的时候,把这些隐藏的问题找出来。
一可以修复数据库,二可以全面找出问题的所在。

但是在rails unit test.
fixtures引入的是yml文件。

如何在unit test 时引入全部数据?
如何做多表关联的测试?
在controller,model 和view 里面有没有比begin/rescue更好的方法?

你可能感兴趣的:(遗留数据库多表关联的 unit test)