0

我正在尝试对一个名为UserModel. 我的 RSpec 代码是:

# user_model.rb
require 'user_model'

describe UserModel do
   result = UserModel.add("test","test")
   result.should eq(1)
end

该行require 'user_model'引发错误:

ERROR : `./user_model.rb:1: uninitialized constant ActiveRecord (NameError)`

那条线是用来导入类的UserModel吗?

4

2 回答 2

2

如果您没有在测试系统中包含 Rails 环境,那么结果将是不可预测的。一个典型的测试test_helper至少包括默认情况下加载到 Rails 中并设置正确的数据库连接。

创建时使用的每个模型rails generate model都将附带一个您可以自定义的示例测试。

于 2013-02-11T03:52:06.877 回答
1

该消息表明您正在使用该常量,但未加载ActiveRecord提供它的库。activerecord

如果您使用的是最新版本的 RSpec,请确保您已运行 rspec 生成器rails g rspec:install来创建标准的 spec_helper,它将加载 Rails 环境(包括 activerecord)。在您的顶部是 user_model_spec,您只需要require 'spec_helper'.

于 2013-02-11T03:53:19.507 回答