1
声明的(快速)测试目的的一类模式是伟大的:使用Rails在已经宣布
require 'fast_helper'
require 'site_search'
class Post; end # This allows not to load the whole Rails env
describe SiteSearch do
it "searches on posts" do
Post.stub_chain(:scoped, :by_term).with("ruby").and_return ["post1", "post2"]
SiteSearch.by_term("ruby").should == ["post1", "post2"]
end
end
它的问题是,它似乎打破轨道模型自动加载当整个规格的套房跑。
以前声明类时,模型不再加载。
有4 ways of injecting the unloaded dependencies:
- 声明类(如实施例在这里)
- 设置/删除常量
- 存根的包装方法
- 实际上加载它们
我只想使用第一个。
问题:保持相同的规格结构,我怎么能告诉轨道实际上加载模型,即使该类已被声明?
感谢维克多。这似乎是做这项工作。然而,我得到'警告:已经初始化常量MIN_NO_CASH_FLOW_PERIODS',这可能与我有时只声明类的事实有关,但有时我实际上'需要'它。因此它现在被加载两次。对此有何想法? –
哎呀,你可能需要一个真正的红宝石向导。没有线索 –
这个常数是我的,当然我知道它在哪里。只是该文件被加载了两次:第一次当我调用'eager_load!'时,第二次当我从另一个规范中需要该文件时。 –