Rails灯具似乎正在添加额外的意外数据

时间:2009-10-08 00:19:44

标签: ruby-on-rails fixtures

所有。我有一个动态夹具CSV文件,它为表格生成可预测的数据,以便我的单元测试能够完成它们的工作。它按预期工作并用数据填充表格,但是当我在测试运行后检查表格时,我会看到一些额外的“空白”数据行(全部为零等)。那些不是由夹具创建的,单元测试是只读的,只是做选择,所以我不能责怪代码。在灯具设置期间似乎没有进行任何记录,因此我无法看到何时插入“空白”数据。有没有人曾经遇到过这个问题,或者有任何关于如何记录或以其他方式查看夹具设置正在做什么以便追踪空白数据来源的想法?

2 个答案:

答案 0 :(得分:0)

您可以打开ActiveRecord日志记录(将ActiveRecord::Base.logger = Logger.new(STDOUT)放入test / test_helper.rb文件中。)

或者,您可以使用像Factories(thoughtbot's factory_girl)或seed_fu(如果您有必须加载的特定数据)更可靠的东西,而不是使用固定装置(它已经成为大多数Rails开发人员的渡渡鸟方式) )。

答案 1 :(得分:0)

我发现了问题所在,虽然不是预防它的确切方法。我正在将ERB放入夹具CSV文件中,该文件工作正常,但由于它被解析和处理的方式,它导致空行被放入生成的CSV输出中。 Fixtures似乎没有那么好处理,因此它在表中插入了空白行。我无法阻止将空白行放入输出CSV,因为无论出于何种原因,<%rubycode - %>不起作用 - 关闭破折号导致ERB解析错误。不知道为什么。

在任何情况下,最终的解决方法是切换到YML而不是CSV。它可以容忍白色空间,并且不再有空行插入表中。

顺便说一句,factory___girl看起来很有趣,但YML现在做得很好,所以它可能有点过分。我认为使用seed_fu并没有太大的好处。在目前的情况下,我正在测试报告代码,因此数据非常具体,需要以某种方式构建,以便验证报告的输出数据。