ruby-on-rails – RSpec:未初始化的常量ActiveRecord(NameError
发布时间:2020-12-17 02:40:56 所属栏目:百科 来源:网络整理
导读:当我从rails项目的根目录运行rspec时,出现以下错误: /Users/ysername/code/fsf/app/models/school_application.rb:3:in `top (required)': uninitialized constant ActiveRecord (NameError) 这是由我的spec_helper.rb文件中的require_relative调用触发的
当我从rails项目的根目录运行rspec时,出现以下错误:
/Users/ysername/code/fsf/app/models/school_application.rb:3:in `<top (required)>': uninitialized constant ActiveRecord (NameError) 这是由我的spec_helper.rb文件中的require_relative调用触发的 这是我的测试: require 'spec_helper' describe '#to_xml' do it 'returns the xml-ified version of a payment' do expect(SchoolApplication.to_xml(XXXXXXXXXXXXXXXX,10,400,"bob").to eq("<txn> <ssl_merchant_id>5</ssl_merchant_id><ssl_user_id>3</ssl_user_id><ssl_test_mode>false</ssl_test_mode><ssl_card_number>2443444433334444</ssl_card_number><ssl_amount>400</ssl_amount><ssl_ssl_cvv2cvc2_indicator>1</ssl_cvv2cvc2_indicator><ssl_first_name>'bob'</ssl_first_name></txn>")) end end 这是我的spec_helper.rb文件. require 'rubygems' ENV["RAILS_ENV"] ||= 'test' require_relative("../app/models/school_application") 仅当我删除require_relative语句时,它不再知道SchoolApplication是什么. 谢谢! 这是抛出错误的文件,school_application.rb require 'builder' class SchoolApplication < ActiveRecord::Base def self.to_xml(number,expiration,cvv,amount,name) xml = ::Builder::XmlMarkup.new xml.txn { xml.ssl_merchant_id 5 xml.ssl_user_id 3 xml.ssl_ssl_pin 1434 xml.ssl_test_mode false xml.ssl_card_number number xml.ssl_amount amount xml.ssl_cvv2cvc2_indicator cvv xml.ssl_first_name name } xml end end 附:不要担心所有的付款凭证都是伪造的. 解决方法
您的spec_helper未加载Rails环境.尝试要求环境:
require 'rubygems' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment",__FILE__) 正确设置后,模型会自动加载,因此您可以删除require_relative行. 如果安装了rspec-rails gem,也可以生成新的spec_helper.rb: rails generate rspec:install (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |