gpt4 book ai didi

ruby - `
' : uninitialized constant RSpec (NameError) using when testing Ruby files

转载 作者:数据小太阳 更新时间:2023-10-29 08:45:11 25 4
gpt4 key购买 nike

我查看了有关此问题的几篇帖子,但似乎找不到解决方法。我目前正在完成 Ruby on Rails 开发类(class)中的一项作业,我们已经使用 RSpec 在 TDD/BDD 上学习了一个模块。到目前为止我已经取得了一些成功,但我不知道如何处理这个错误:

<main>': uninitialized constant RSpec (NameError)

我已经逐行检查了我的期望和代码本身,以确保它是正确的。 RSpec 在 spec 文件中正确地大写,我有一个对应的类 end这通常会导致 RSpec 抛出此错误。不过,我仍在学习 RSpec。当错误开始弹出时,我正在处理最后一个期望语句。

代码

require_relative "entry.rb"

class AddressBook
attr_accessor :entries

def initialize
@entries = []
end

def add_entry(name, phone, email)
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 remove_entry

end
end

RSpec

RSpec.describe AddressBook do  
context "attributes" do
it "should respond to entries" do
book = AddressBook.new
expect(book).to respond_to(:entries)
end

it "should initialize entries as an array" do
book = AddressBook.new
expect(book.entries).to be_a(Array)
end

it "should initialize entries as empty" do
book = AddressBook.new
expect(book.entries.size).eql? 0
end
end

context ".add_entry" do
it "adds only one entry to the address book" do
book = AddressBook.new
book.add_entry('Ada Lovelace', '010.012.1815', 'augusta.king@lovelace.com')

expect(book.entries.size).eql? 1
end

it "adds the correct information to entries" do
book = AddressBook.new
book.add_entry('Ada Lovelace', '010.012.1815', 'augusta.king@lovelace.com')
new_entry = book.entries[0]

expect(new_entry.name).eql? 'Ada Lovelace'
expect(new_entry.phone_number).eql? '010.012.1815'
expect(new_entry.email).eql? 'augusta.king@lovelace.com'
end
end
it "removes only one entry from the address book" do
book = AddressBook.new

expect(book.entries.size).to change.by(1)
end
end

更新

我按照下面所述的答案运行了 rspec spec/address_book_specs.rb 并收到了以下内容:

/Users/jrshafer/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in     `require': cannot load such file -- spec_helper.rb (LoadError)
from /Users/jrshafer/.rvm/rubies/ruby- 2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/jrshafer/bloc/code/address-bloc/spec/address_book_specs.rb:1:in `<top (required)>'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226:in `load'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226:in `block in load_spec_files'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224:in `each'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224:in `load_spec_files'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:97:in `setup'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85:in `run'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70:in `run'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38:in `invoke'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.2.3/exe/rspec:4:in `<top (required)>'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/bin/rspec:23:in `load'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/bin/rspec:23:in `<main>'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
from /Users/jrshafer/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'

我发誓我以前运行这样的测试绝对没有问题。我已经重新开始这个项目,因为我还没有深入研究它,但我遇到了同样的问题。

最佳答案

如果您是通过网络搜索来到这里的,请试试这个。将这些条目中的第一个,然后两个都插入到您的/.rspec 文件中:

--require spec_helper.rb
--require rails_helper.rb

也许它在调试您的问题时抖出额外的信息。

关于ruby - `<main>' : uninitialized constant RSpec (NameError) using when testing Ruby files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com