【问题标题】:ArgumentError in mongoid-rspecmongoid-rspec 中的参数错误
【发布时间】:2014-08-18 07:59:54
【问题描述】:

当我执行 bundle exec rspec spec/controllers 时,我得到了:

/var/lib/gems/1.9.1/gems/rspec-core-3.0.4/lib/rspec/core/hooks.rb:521:in `extract_scope_from':你必须明确地给出一个范围(例如,使用符号作为钩子的元数据时的上下文、套件)或范围别名(每个、全部)。 (参数错误)

我的宝石文件:

gem 'rails', '4.1.4'
gem 'mongoid', '~> 4', github: 'mongoid/mongoid'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'spring',        group: :development
group :development, :test do
    gem 'rspec-rails', '~> 3.0.2'
end

group :test do
    gem 'database_cleaner'
    gem 'factory_girl_rails'
    gem 'mongoid-rspec'
end

我的 spec_helper.rb:

# spec_helper.rb

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'

# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
  config.mock_with :rspec

  config.before :each do
    Mongoid.purge!
  end

  require 'database_cleaner'
  config.before(:siute) do
      DatabaseCleaner.strategy = :truncation
      DatabaseCleaner.orm = "mongoid"
  end

  config.before(:each) do
      DatabaseCleaner.clean
  end
end

我的 rails_helper.rb

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

RSpec.configure do |config|

  # ArgumentError whether the following is commented out or not
  config.infer_spec_type_from_file_location!
end

我的 spec/controllers/typer_controller_spec.rb(仅控制器文件夹中的文件)

require "rails_helper"

RSpec.describe TyperController, type:controller do
    describe "GET #index" do
        it "initializes properly" do
            get :index
            # nothing to test yet
        end
    end
end

【问题讨论】:

  • 你应该附上完整的堆栈跟踪

标签: ruby-on-rails rspec mongoid rspec-rails


【解决方案1】:

这里有语法错误

RSpec.describe TyperController, type:controller do

改成

RSpec.describe TyperController, type: :controller do

【讨论】:

  • 是的,这是一个错字。我改变了它,但仍然是同样的错误。
【解决方案2】:

我的错误:

config.before(:siute) do

应该是

config.before(:suite) do

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2017-04-08
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    相关资源
    最近更新 更多