NameError:未初始化的常量Shoulda

我执行本教程https://www.digitalocean.com/community/tutorials/build-a-restful-json-api-with-rails-5-part-one

但是,在“模型”一章中运行RSpec测试时,出现以下错误。

C:\Users\NCH-Lap10\Desktop\rubyprojects\todos-api>bundle exec rspec

An error occurred while loading ./spec/controllers/items_controller_spec.rb.
Failure/Error:
  Shoulda::Matchers.configure do |config|
    config.integrate do |with|
      with.test_framework :rspec
      with.library :rails
    end
  end

NameError:
  uninitialized constant Shoulda
# ./spec/rails_helper.rb:6:in `<top (required)>'
# ./spec/controllers/items_controller_spec.rb:1:in `require'
# ./spec/controllers/items_controller_spec.rb:1:in `<top (required)>'

An error occurred while loading ./spec/controllers/todos_controller_spec.rb.
Failure/Error:
  Shoulda::Matchers.configure do |config|
    config.integrate do |with|
      with.test_framework :rspec
      with.library :rails
    end
  end

NameError:
  uninitialized constant Shoulda
# ./spec/rails_helper.rb:6:in `<top (required)>'
# ./spec/controllers/todos_controller_spec.rb:1:in `require'
# ./spec/controllers/todos_controller_spec.rb:1:in `<top (required)>'

An error occurred while loading ./spec/models/item_spec.rb.

因此他找不到我的测试。(我从教程中复制了它们)

我的测试位于规格/模型中,如下所示:

require 'rails_helper'

# Test suite for the Item model
RSpec.describe Item, type: :model do
  # Association test
  # ensure an item record belongs to a single todo record
  it { should belong_to(:todo) }
  # Validation test
  # ensure column name is present before saving
  it { should validate_presence_of(:name) }
end

我的Gemfile的一部分:

group :test do
  gem 'factory_bot_rails', '~> 4.0'
  gem 'shoulda-matchers', '~> 3.1'
  gem 'faker'
  gem 'database_cleaner'
end

我应该提供更多代码吗?

塞缪尔·福尔

根据github上的这个问题

您可能要将此添加到您的spec_helper.rb

require "shoulda/matchers"
require "shoulda/matchers/integrations/rspec"

另外,请确保在中spec_helper有此要求rails_helper

编辑以供将来的读者使用:在最新的Rails版本中,不建议使用第二行(请参见注释)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

困惑-spec_helper.rb:94:in`<top(required)>':未初始化的常量Shoulda(NameError)

NameError:未初始化的常量(rails)

未初始化的常量Improvingoutes(NameError)

未初始化的常量Logger(NameError)

Ruby NameError:未初始化的常量

NameError:未初始化的常量SingleColumnValueFilter

NameError:未初始化的常量DeviseMultipleTokenAuthDevice

NameError:未初始化的常量FileUtils

NameError:未初始化的常量Twitter

NameError:未初始化的常量发布

NameError(未初始化的常量

NameError:未初始化的常量项目

NameError:未初始化的常量 Linked_Test::Nill

现有ID上的“ NameError:未初始化的常量”

耙子流产了!NameError:未初始化的常量用户

NameError:未初始化的常量Capistrano :: Puma

如何修复'NameError:未初始化的常量Mongo :: ConnectionFailure

NameError(未初始化的常量ActiveStorage :: Downloading)

LibUSB未初始化的常量USB(NameError)

NameError:RSpec 上的未初始化常量

Ruby on Rails 5未初始化的常量ApplicationRecord(NameError)

NameError:未初始化的常量Mail :: Parsers :: ContentTransferEncodingParser

NameError:Heroku上的未初始化常量

NameError(未初始化的常量Aws :: VERSION):

NameError:未初始化的常量ActiveRecord :: ConnectionAdapters :: PostgreSQLAdapter :: TableDefinition

问题-未初始化的常量WebDriver(NameError)

NameError:未初始化的常量CarrierWave :: Storage :: Fog

Rails:NameError(未初始化的常量UserSerializer)

Rails:NameError:未初始化的常量Bootsnap :: CompileCache :: ISeq