繁体   English   中英

红宝石模块NameError:未初始化的常量错误

[英]ruby module NameError: uninitialized constant error

我正在尝试创建一个gem,但是当尝试在测试中加载模块时,出现以下错误。 我使用“可配置的Ruby gems:自定义错误消息和测试 ”来设置用户的环境变量,而这正是大多数代码的来源。

  1) Msg91sms::Configuration with configuration block returns the correct authkey
     Failure/Error: raise Errors::Configuration, "Msg94 auth key missing!" unless @authkey

     NameError:
       uninitialized constant Msg91sms::Configuration::Errors
     # ./lib/msg91sms/configuration.rb:10:in `authkey'
     # ./spec/msg91sms/configuration_spec.rb:7:in `block (3 levels) in <top (required)>'

但根据文件夹结构以及所有内容,应该为Msg91sms::Errors::Configuration 即使所有测试由于模块加载不正确而失败,我也只放置了一个。

可以在这里找到具有该错误的gem: https//github.com/flyingboy007/msg91sms/tree/development

bundle exec rspec将引发所有错误。

应该是命名或加载不正确的内容。 但我不知道。

在遵循@sergio的回答之后,我现在收到此错误:

  1) Msg91sms::Configuration with configuration block returns the correct authkey
     Failure/Error: raise ::Msg91sms::Errors::Configuration, "Msg91 auth key missing!" unless @authkey

     NameError:
       uninitialized constant Msg91sms::Errors
     # ./lib/msg91sms/configuration.rb:10:in `authkey'
     # ./spec/msg91sms/configuration_spec.rb:7:in `block (3 levels) in <top (required)>'

有人可以告诉我这里做错了什么吗?

raise Errors::Configuration, "Msg94 auth key missing!" unless @authkey

使用完全限定的名称来帮助Ruby查找类。

raise ::Msg91sms::Errors::Configuration, "Msg94 auth key missing!" unless @authkey

文件夹结构类似于Errors :: Configuration,但错误显示类似于Configuration :: Errors..Do不知道为什么。

它正在尝试在Msg91sms::Configuration (此时的当前作用域)中找到Errors::Configuration 但是由于没有Msg91sms::Configuration::Errors ,因此该消息失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM