- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我查看了有关此问题的几篇帖子,但似乎找不到解决方法。我目前正在完成 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/
我想问一个让我困惑的问题。我正在尝试扫描字符串并将其转换为实数。使用该数字来计算值(value)。这是我的代码: string input_file_name1 = "shen_test_38_30_
我正在为我的 C 类入门编写一个程序,当我尝试使用 gcc 进行编译时,我不断收到一些警告。 这是我的代码: char **outList; *outList = strdup(cloudDevice
我正在使用 Chromium 嵌入式框架。我将以下内容放在主函数中。 CefRefPtr cef; CefRequest::ReferrerPolicy origin = origin; cef->S
我是C++的新手,正在测试while循环以及C++的绝对速度及其对我的CPU的影响,但出现以下错误: Severity Code Description Project File Line Suppr
string foo; try { foo = "test"; // yeah, i know ... } catch // yeah, i know this one too :) {
当尝试在 Mac OS X 10.6 上使用 FFMPEG gem 时,ruby 会抛出一个 NameError 异常,如下所示: NameError: uninitialized constant
我做了一个程序来计算 View 的总宽度/高度(有时我想要总宽度,有时我想要总高度)。唯一的问题是:如果我正在计算宽度,我想添加一个额外的 10到总数。这是我当前的代码: func calculate
所以我只想从常规地址(字符串)中提取经度/纬度坐标。我查阅了 geokit gem 文档并按照记录的内容进行了操作,但我不断收到此错误:“NameError:未初始化的常量 Geokit::Geoco
为什么 perl -we '$c = $c+3' 上升 Use of uninitialized value $c in addition (+) at -e line 1. perl -we '$c
我有以下代码: class circularList { public: circularList() : data(0), next(this) {} public: int dat
我的情况 我正在 ASP.NET MVC4 应用程序中进行测试。我正在开发的应用程序部分将现代 WebSecurity/SimpleMembershipProvider 与正在逐步淘汰的遗留身份验证系
我是 Ruby on Rails 的新手,我想使用迁移生成 mysql 数据库。 我尝试过这个命令 ruby bin/rake db:drop db:create db:migrate --trace
我需要一些调试帮助,因为我遇到的错误真的很难。 这是一款具有复杂动画的游戏。然而,问题不在于 SpriteKit .我希望动画按照严格的顺序彼此跟随,所以我实现了 Operation 的子类: cla
这是一个示例代码: #include int main() { int n = 5; float v[n]; float sum; int i; for(i
我正在使用 SQL Server 2012 并尝试实现事务复制。我正在使用系统存储过程来创建发布和订阅。我成功地创建了这些东西,但是当我检查复制监视器时,它显示“未初始化的订阅”。 当我检查订阅的同步
我有以下脚本: use 5.12.4; use strict; use warnings; say "Enter a functionality:"; while (<>) { if (/ad
我已经阅读了有关 has_many 的文档和大量教程:通过 Rails 中的关系,但我终生无法掌握它的窍门。 我正在尝试向我的 current_user(devise) 添加一个组,并且我在 Grou
我正在尝试为移动 API 设置路由,它应该有一个版本化的 api-path。我已经可以让移动 Auth 工作了,这是在位于 的单独 Controller AuthController 中实现的。/co
我正在使用 luacheck(在 Atom 编辑器中),但对其他静态分析工具开放。 有没有办法检查我是否使用了未初始化的表字段?我阅读了文档( http://luacheck.readthedocs.
我有一家工厂,例如: FactoryGirl.define do factory :page do title 'Fake Title For Page' end end 并进行测试:
我是一名优秀的程序员,十分优秀!