【问题标题】:Rails 2.3.2 - How to seed my test tables with data?Rails 2.3.2 - 如何用数据播种我的测试表?
【发布时间】:2011-12-16 00:10:05
【问题描述】:
我刚刚学习 Cucumber / RSpec,我的应用程序需要完全填充某些表(例如类别、国家、价格列表等...)才能真正正常工作。其中一些表有超过 500 行(这些都是必需的)。
我正在考虑在运行每个场景之前制作所需表的 MySQL 转储并让脚本将它们导入测试数据库,但这感觉效率不高(而且不知道如何开始导入)。
是否有关于如何实现此目的的最佳实践方法?
非常感谢任何建议!
【问题讨论】:
标签:
ruby-on-rails
testing
rspec
cucumber
【解决方案1】:
您正在寻找的是测试夹具。我推荐 gem fixture_builder,用于在代码中描述您的fixture,然后将其转储到 yaml 中,然后在您的测试运行开始时进入数据库。
我还建议寻找简化测试数据的方法。虽然您可能有 500 个产品代码在生产中,但您应该能够使用包含 15 个左右产品的列表来测试大多数特殊情况。测试运送到 2 个国家/地区的效果与测试运送到 100 个国家等的效果差不多。它也更容易跟踪。
从一小部分测试夹具数据开始,并根据需要添加数据以设置特殊情况,而不是将生产数据库放入测试中。