我有一个辅助类 ApplicationHelper,它有一个方法 build_links()。我有另一个类,AppleClass,它指的是那个方法。
AppleClass
def foo
....
build_links
end
end
ApplicationHelperClass
def build_links
main_app.blah_path(1)
end
end
这里的复杂之处在于有一个引擎,所以我通常明确引用“main_app.blah_path”而不仅仅是“blah_path”。
针对 foo 的测试在其文件中以及在我运行所有帮助程序时自行通过。但是,当我将它包含在所有单元测试中时它失败了 - “rake spec:suite:unit”,以及我们的整个套件。所有 Apple 测试通过,所有 ApplicationHelper 测试通过。唯一失败的是当一种方法引用另一种方法时,在路由中,在引擎之外,在完整套件中。
`undefined local variable or method `main_app' for #
<RSpec::Core::ExampleGroup::Nested_45::Nested_1:0x007fc134b30130>`
我怀疑测试助手或某些配置没有足够早地加载引擎的路由,因此指向“main_app”的链接没有意义。如果我删除 main_app,测试会失败,直到它在主套件中运行。
有没有人有关于故障排除真正发生的事情的提示?另外,我可以在 test_helper 中以某种方式启动路由吗?
ruby-1.9.3-p385,导轨 3.2.13,rspec 2.13.0