1

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

4

2 回答 2

0

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

或者,您可以使用更可靠的东西,例如工厂( thoughtbot 的 factory_girl)或 seed_fu(如果您有必须加载的特定数据),而不是使用固定装置(对于大多数 Rails 开发人员来说,这已经成为渡渡鸟的方式)。

于 2009-10-08T02:52:27.897 回答
0

我发现了问题所在,尽管不是防止它的精确方法。我将 ERB 放入夹具 CSV 文件中,该文件工作正常,但由于解析和处理它的方式,它导致将空白行放入生成的 CSV 输出中。Fixtures 似乎不能很好地处理这个问题,因此它在表中插入了空白行。我无法阻止将空行放入输出 CSV,因为无论出于何种原因, <% ruby​​code -%> 都不起作用——关闭破折号会导致 ERB 解析错误。不知道为什么。

无论如何,最终的解决方法是切换到 YML 而不是 CSV。它可以很好地容忍空白,并且不再将空白行插入表中。

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

于 2009-10-08T20:31:14.107 回答