2014-02-28 108 views
0

我有點新的紅寶石,特別是更高級的概念,如模塊和混入的,所以我可能會使用模塊完全是斷章取義的..最好的辦法

我目前正在寫一使用Capybara的內部測試框架,我試圖找出處理配置數據的最佳/最簡單的方法。我提交了一個名爲config.rb的文件,並且我想在每個環境中存儲配置設置。例如:

module QAConfiguration 
    config data goes here 
end 

module DevConfiguration 
    config data goes here 
end 

配置數據最簡單的例子是用戶名和密碼。 QA和Dev當然會使用不同的用戶。我正在考慮採取兩種不同的方式來解決這個問題,但我想確保我至少遵循一種體面的做法,不要進入雜草。

module QAConfiguration 
    USERNAME = 'test' 
    PASSWORD = 'test' 
end 

或..

module QAConfiguration 

def username 
    'test' 
end 
end 

等。哪種方法可以解決這個問題?

+2

有幾個配置可用的寶石,我個人會使用其中一個,而不是重新發明輪子。 –

回答

0

模塊可能不是實現這一點的最佳方式。通常在測試時(我使用rspec),我們使用包含可重用代碼的助手文件。

像用戶名和密碼的對象屬性通常由工廠處理。工廠的一個偉大的寶石是FactoryGirl

0

將配置存儲在ruby/rails中的常用方法是使用yaml文件。例如,您可以創建一個名爲config/test_conf.yml與YAML格式文件:

username: 'your_user' 
password: 'somepass' 

然後在您需要的配置數據:

config = YAML.load(File.read("#{Rails.root}/config/test_conf.yml")) 
puts config['username'] 

最後,你通常只放一個test_config。 yml.example在git/svn和你的應用程序安裝自述文件中注意,他們需要cp config/test_config.yml.example config/test_config.yml並編輯文件。