0

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

cd test/
ruby unit/directive_test.rb

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

所以看起来夹具被加载到表中为时已晚,我的一个模块无法找到它。

  1. 夹具何时加载?app/model/*.rb在文件执行之后还是之前?
  2. 如果是模型执行之后有没有办法延迟加载?

这个问题在运行时也很重要,rake test:units因为该任务在完成后会清除测试数据。

4

1 回答 1

0

首先看看这个线程,看看它是否可以帮助你。

如果你运行 rail task rake test:units 它肯定会在你运行你的代码之前加载所有的fixture。如果您只运行测试,并且您的单元测试没有引用 test_help.rb 可能它没有加载固定装置。您应该尝试通过 rake 任务运行它。

我给你的另一个提示是你忘记了固定装置并使用工厂(这里我推荐factory_girl)。需要一段时间才能习惯,但值得。夹具太难管理,更新等。

还有一篇文章几乎没有解释工厂背后的概念。

于 2010-05-06T21:04:17.823 回答