【发布时间】:2014-12-11 15:56:48
【问题描述】:
我想为我的 Rails 测试设置一个active_record_spec_helper,这样我就可以测试我的模型而无需设置整个 Rails 环境 - 正如 Corey Haines 在他的excellent blog post on the subject 中所阐述的那样。
(我知道像 Spring 或 Guard 这样的预加载器在解决这个问题方面起到了部分作用,但我同意 Corey 的论点,即这“实际上只是解决实际问题的创可贴”。)
所以我已经按照 Corey 的博客文章和 this GitHub gist 中的说明设置了我的规范帮助程序和其他文件 - 但我的问题与我在 my comment 中描述的相同:
基本上,我的模型之间的关联意味着要测试单个模型,我必须 require 这么多其他模型文件,这否定了首先使用 active_record_spec_helper 的意义。
例如如果我想测试comment.rb 但我的评论belongs_to :post,那么我必须要求post 和comment 才能使我的测试工作。但随后Post 可能有其他关联,例如belongs_to :user; has_many :drafts,所以我还需要 user 和 drafts 来测试 Comment... 然后 user 和 drafts 也有关联,依此类推,直到我最终加载几乎每个模型在我的类图中。
(如果这没有意义,我在the comment给出了更详细的解释。)
是否可以解决这个问题并避免require 所有那些无关的模型文件?还是我缺少一些概念性的东西——我应该避免在这个巨大的网络中链接我的所有模型,还是不可避免?
或者只是不值得付出努力,我应该坚持让rails_helper 加载整个环境吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 testing rspec rails-activerecord