首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的测试中触发Railtie初始化器?

如何在我的测试中触发Railtie初始化器?
EN

Stack Overflow用户
提问于 2015-07-27 04:57:51
回答 2查看 2.5K关注 0票数 7

我有自己的宝石,我的栏杆看起来像..。

代码语言:javascript
复制
class MyRailtie < Rails::Railtie
  initializer "my_railtie.configure_rails_initialization" do
    # some initialization behavior
  end
end

我正在试着测试它,但在测试中,初始化器从未被调用过。我注意到我在另一个get中有一些依赖项,这些get也有一个初始化器,它们也没有被调用。

你知道除了索取文件我还应该做什么吗?

EN

回答 2

Stack Overflow用户

发布于 2015-07-27 07:02:46

由于初始化器是Rails功能的一部分,因此您需要将Railtie加载到Rails应用程序中,以便自动调用它。这通常是通过在您的spec文件夹中构建一个小的Rails应用程序来完成的,但手动设置起来很痛苦。幸运的是,有一个名为combustion的优秀gem,它使测试引擎(或带有铁路的gem)变得轻而易举。它将负责为您设置Rails应用程序,并确保您测试在该Rails环境中运行(包括运行该初始化器)。

票数 7
EN

Stack Overflow用户

发布于 2018-04-25 02:19:55

在测试的beforesetup块中,您可以这样做:

对于铁路公司来说

代码语言:javascript
复制
MyRailtie::Railtie.initializers.each(&:run)

对于一个引擎

代码语言:javascript
复制
MyEngine::Engine.initializers.each(&:run)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31641882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档