2

同様の YAML 構成ファイルがあるとします。

defaults: &defaults
  # registration form
  birth_date: true
  address: true
  zip: true
  city: true
  state: true
  # other stuff
  send_email_notification_to_users: true

production:
  <<: *defaults

development:
  <<: *defaults

test:
  <<: *defaults

これは、Railcast #85 で説明されている方法と同様の方法でロードされます: http://railscasts.com/episodes/85-yaml-configuration-file

アプリケーションがさまざまな設定でどのように動作するかをテストする必要があるとします。

Django では、単体テスト中に一時的に設定を変更することができます: https://docs.djangoproject.com/en/dev/topics/testing/overview/#overriding-settings

Railsで同様のことを行うことは可能ですか?

4

2 に答える 2

2

In case you implemented it exactly like it is explained in Railscast #85, simply assign the new value like so:

APP_CONFIG['perform_authentication'] = false
# or
APP_CONFIG['my_fancy_key'] = 'my fancy value'

Keep in mind that the value will not be changed back automatically after your test case finished, so it will remain valid for all subsequent test cases.

于 2013-01-28T14:52:03.233 に答える
2

前後のブロックを使用して、構成を動的に変更します。

before(:all) do 
  @old_config = APP_CONFIG
  APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")["production"]
end
after(:all) do
  APP_CONFIG = @old_config
end
于 2013-01-28T14:49:27.687 に答える