Ruby on rails 为什么我在RSpec测试中收到负载错误?
运行RSpec测试时,我收到以下加载错误:Ruby on rails 为什么我在RSpec测试中收到负载错误?,ruby-on-rails,ruby,csv,rspec,Ruby On Rails,Ruby,Csv,Rspec,运行RSpec测试时,我收到以下加载错误: Eric-Parks-MacBook-Pro-2:Address_Bloc ericpark$ rspec spec/address_book_spec.rb models/address_book.rbrspec spec/address_book_spec.rb models/address_book.rb /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/co
Eric-Parks-MacBook-Pro-2:Address_Bloc ericpark$ rspec spec/address_book_spec.rb models/address_book.rbrspec spec/address_book_spec.rb models/address_book.rb
/Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/configuration.rb:1226:in `load': cannot load such file -- /Users/ericpark/rails_projects/Address_Bloc/models/address_book.rbrspec (LoadError)
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/configuration.rb:1226:in `block in load_spec_files'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/configuration.rb:1224:in `each'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/configuration.rb:1224:in `load_spec_files'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/runner.rb:97:in `setup'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/runner.rb:85:in `run'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/runner.rb:70:in `run'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/lib/rspec/core/runner.rb:38:in `invoke'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.2/exe/rspec:4:in `<top (required)>'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/bin/rspec:23:in `load'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/bin/rspec:23:in `<main>'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `eval'
from /Users/ericpark/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `<main>'
地址_book.rb:
require_relative "entry.rb" #Loading the model's association
require "csv"
class AddressBook
attr_accessor :entries
def initialize
@entries = []
end
def add_entry(name, phone, email)
#Create a variable index to store
index = 0
@entries.each do |entry|
if name < entry.name
break
end
index += 1
end
@entries.insert(index,Entry.new(name,phone,email))
end
def import_from_csv(file_name)
csv_text = File.read(file_name)
csv = CSV.parse(csv_text, headers: true)
csv.each do |row|
row_hash = row.to_hash
add_entry(row_hash["name"], row_hash["phone_number"], row_hash["email"])
end
return csv.count
end
def binary_search(name)
return nil
end
end
require_relative“entry.rb”#加载模型的关联
需要“csv”
类通讯簿
属性存取器:条目
def初始化
@条目=[]
终止
def添加_条目(姓名、电话、电子邮件)
#创建要存储的变量索引
索引=0
@条目。每个do |条目|
如果name
我已将entries.csv和entries_2.csv包含在与应用程序相同的文件夹中 错误告诉您,它无法加载您要求它加载的特定文件。请注意错误:
cannot load such file -- /Users/ericpark/rails_projects/Address_Bloc/models/address_book.rbrspec (LoadError)
请注意您的rspec
命令:
$ rspec spec/address_book_spec.rb models/address_book.rbrspec spec/address_book_spec.rb models/address_book.rb
传递给rspec
的第二个参数是models/address\u book.rbspec
,它命名了一个不存在的文件。RSpec无法加载不存在的文件,出现此错误。在我看来,您可以将rspec
命令简化为:
$ rspec spec/address_book_spec.rb
没有必要像你刚才那样通过第二个
spec/address\u book\u spec.rb
arg。您也不应该将实现文件(models/address\u book.rb
)的路径传递给RSpec。相反,您应该在spec/address\u book\u spec.rb
顶部require'models/address\u book.rb
无法加载的文件是models/address\u book.rbrspec
-这是关于什么的?
$ rspec spec/address_book_spec.rb