2014-02-28 69 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并编辑文件。