将Ruby模块用于配置数据的最佳方式

时间:2014-02-28 22:53:41

标签: ruby capybara

我对Ruby有点新,尤其是模块和mixins等更高级的概念,所以我可能完全脱离了上下文使用模块。

我目前正在使用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 :(得分:0)

模块可能不是实现此目的的最佳方式。通常在测试时(我使用rspec),我们使用包含可重用代码的帮助文件。

用户名和密码等对象属性通常由工厂处理。工厂的一个伟大宝石是FactoryGirl

答案 1 :(得分:0)

在ruby / rails中存储配置的常用方法是在yaml文件中。例如,您可以使用yaml格式创建名为config / test_conf.yml的文件:

username: 'your_user'
password: 'somepass'

然后您需要配置数据:

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

最后,您通常只会在git / svn上放置一个test_config.yml.example,并在您的app setup自述文件中说明他们需要cp config / test_config.yml.example config / test_config.yml并编辑该文件。