2015-01-04 40 views
0

我正在使用Rails 4以及它所附带的测试框架。Rails中的数据库测试

我正在使用需要严格测试内部一致性的关系数据库。在这种情况下,这是一个运动统计数据库,每晚更新球员统计数据。

当新的数据每天晚上到达时,我需要运行如下测试:
- 玩家统计的总数等于团队的数量。
- 球队统计总数等于联盟的总和。
- 胜负总和等于比赛结果。
- 等等。

现在我将我的开发数据库复制到测试中,并在我的单元测试旁边的/test/models/目录中运行。

这是一个尴尬的设置,因为我的数据库测试代码并不包含单元测试的正确含义,并且它不依赖于fixture,因为Rails文档建议使用此文件夹。

我的问题是:在Rails中,数据库测试的最佳做法是什么?

回答

0

这并不是真正的古典意义上的测试,所以将它包含在单元测试中并没有意义。有至少两个很好的解决方案:

  1. 在飞行中计算团队和联盟的统计数据。尽管如此,听起来并不是这样。
  2. 当您将新数据添加到数据库时,请检查一致性。如果一个记录/值破坏了内部一致性,请不要将其添加到数据库中。