2012-05-27 113 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