Rails 2.3.5表在测试运行结束时填充,而不是在启动时填充

时间:2010-05-06 17:16:25

标签: ruby-on-rails ruby unit-testing rake fixtures

我从包含架构的测试数据库开始,但表中没有数据。我像这样进行测试

cd test/
ruby unit/directive_test.rb

我收到失败,表明代码在数据表中没有找到数据。但是,我在运行该测试后查看表格,数据现在在表格中。事实上,如果我立即再次进行测试,我就不会失败。

所以看起来夹具被加载到表中太晚了,我的一个模块找不到它。

  1. 装置什么时候装?执行app/model/*.rb文件之前或之后?
  2. 如果 之后执行模型有没有办法延迟加载?
  3. 此问题在运行rake test:units时也很重要,因为该任务在完成后会清除测试数据。

1 个答案:

答案 0 :(得分:0)

首先查看this thread并查看它是否可以为您提供帮助。

如果您运行轨道任务rake测试:它将确保在运行代码之前加载所有灯具。如果你只运行测试,并且你的单元测试没有引用test_help.rb可能它没有加载灯具。您应该尝试通过rake任务运行它。

我给你的另一个提示是你忘记了固定装置并使用工厂(我推荐factory_girl)。使用它需要一些时间,但它值得。固定装置太难管理,更新等等。

another post解释工厂背后的概念。