[英]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.