【问题标题】:"Uninitialized constant" error when using RSpec in a Rails 3.1 project在 Rails 3.1 项目中使用 RSpec 时出现“未初始化常量”错误
【发布时间】:2011-06-24 16:33:19
【问题描述】:

我正在尝试使用 RSpec 来测试 Rails 3.1rc4 项目。我想测试我在lib/ 目录中的代码。我得到:

/home/julas/myapp/spec/lib/operation_spec.rb:3:in `<top (required)>': uninitialized constant MyApp (NameError)

MyApp 是一个模块(命名空间),每当我尝试使用此命名空间中的某些内容时,都会出现问题,例如当我尝试做时

describe MyApp::Something do

在我的测试中。

测试之前没有任何问题。我通过将config.autoload_paths += Dir["#{config.root}/lib/**/"] 添加到application.rb 来将lib/ 中的所有内容加载到Rails 环境中。

我真的不知道是什么原因造成的。有人遇到过类似的事情吗?

更新:它似乎与 Spork 无关。我一定错过了什么。

【问题讨论】:

    标签: ruby-on-rails-3 rspec rspec2 ruby-on-rails-3.1 spork


    【解决方案1】:

    我不知道为什么这更早起作用,但似乎要测试 lib 目录中的代码,您必须在规范文件中要求它(它不像控制器那样自动加载)。 Source

    【讨论】:

      【解决方案2】:

      我已经从lib/ 加载代码。我的问题是,我的测试有:

      require "spec_helper"
      

      而不是

      require 'rails_helper'
      

      【讨论】:

        猜你喜欢
        • 2015-05-03
        • 1970-01-01
        • 1970-01-01
        • 2018-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多