main_app命名空间未知在Rspec的,仅在单元测试套件(批处理)(main_app Names

2019-11-02 02:36发布

我有一个辅助类,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测试通过本身,在它的文件,当我运行的所有助手。 它失败了,不过,当我包括在所有的单元测试 - “耙规格:套间单位”,并与我们的整个套件。 所有苹果的测试都通过了,所有ApplicationHelper测试通过。 当一个方法指的是另一种方法,在路线,发动机之外,在全套的唯一失败的有。

`undefined local variable or method `main_app' for #  
<RSpec::Core::ExampleGroup::Nested_45::Nested_1:0x007fc134b30130>`

我怀疑是测试帮手,或者一些配置,没有加载引擎的路线早期,足量,因此链接“main_app”是没有意义的。 如果我删除main_app,直到它在主套件运行测试失败。

有没有人对排查到底发生了什么的提示? 此外,可我不知kickstart的路由在test_helper?

红宝石1.9.3-P385,轨道3.2.13,rspec的2.13.0

Answer 1:

我有同样的问题,结果发现,如果我加入这个方法我的控制器的RSpec测试用例的顶部,那么它完全解决了这个问题。

def main_app
  Rails.application.class.routes.url_helpers
end

我觉得这个问题涉及到这个问题



文章来源: main_app Namespace unknown in Rspec, only in unit suite tests (batch)