2012-05-27 61 views
0

我想在Rails测试中模仿枚举类似的效果。但是,我似乎无法让它工作。设置栏中的枚举

例子。

我有一个模块调用天:

module Days  
    SUNDAY = 0; 
    MONDAY = 1; 
    TUESDAY = 2; 
    WEDNESDAY = 3; 
    THURSDAY = 4; 
    FRIDAY = 5; 
    SATURDAY = 6; 
end 

在同一目录中,我有一个scheduler_spec.rb

require 'spec_helper' 
describe Scheduler do 
    include Days 
    ... 

然而,红宝石引发以下错误:

in `block in <top (required)>': uninitialized constant Days (NameError) 
    from /Users/krg07/.rvm/gems/ruby-1.9.3-p125/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:201:in `module_eval' 
    from /Users/krg07/.rvm/gems/ruby-1.9.3-p125/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:201:in `subclass' ... 

任何想法我可以做这个工作?谢谢!

回答

0

Ruby没有枚举,但你可以做类似的东西就像在链接 http://www.rubyfleebie.com/enumerations-and-ruby/

+0

我同意。我尝试了类似的东西 - 我在模块中添加了这些“枚举”,并尝试了包括模块。但是,问题是这个模块没有找到。 – Karan

+0

链接解释为将它们放在课堂上。或者你总是可以使用散列:sunday => 1 –

0

您的模块不能被包含在Rails的自动加载路径或不遵循自动加载约定。你可以在包含文件之前解决这个问题:

require 'spec_helper' 
require './days' 
describe Scheduler do 
    include Days 
+0

我有一种感觉可以修复它,但不幸的是,它找不到常量。我得到: in ':未初始化的常量MONDAY(NameError) – Karan