-1

我创建了一个常量,其中包含我正在开发的应用程序的 API 密钥。它在 Rails 控制台中工作,但我很难让它在我的测试中工作。我必须使用 Bing,所以我添加了这样的 API:

# config/bing.yml
development:
  secret: 1234

test:
  secret: 5678

production:
  secret: abcd

# config/initializers/bing.rb
BING_CONFIG = YAML.load_file("#{::Rails.root}/config/bing.yml")[::Rails.env]

我将如何确保BING_CONFIG加载到 rspec?目前,它在我的 rails 控制台中工作和加载正常,但是当我运行我的规范时,我收到以下错误:

uninitialized constant SearchEngine::BING_CONFIG
4

2 回答 2

0

据我了解,只要您在 中配置这样的初始化config/initializers,即使在 rspec 运行中也应该加载它。但它仍然无法正常工作......

由于您的错误输出显示SearchEngine名称,我猜您已将初始化程序包装在模块中。

如果是这种情况,SearchEngine则应在上述赋值之前引入模块名称。但是当你引入模块名时,为了让 Rails 的自动加载器满意,你必须遵循 Rails 根据命名空间层次命名文件(和类/模块名)的方式。这取决于如何SearchEngine定义。你想如何定义模块名称?

于 2013-09-05T06:40:01.120 回答
0
于 2013-09-05T06:34:13.347 回答