mongoid-rspec中的ArgumentError

时间:2014-08-18 07:59:55

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

当我捆绑exec rspec规范/控制器时,我得到了:

/var/lib/gems/1.9.1/gems/rspec-core-3.0.4/lib/rspec/core/hooks.rb:521:in“extract_scope_from”:你必须明确给出一个范围(例如,使用符号作为钩子的元数据时的上下文,套件)或范围别名(每个,所有)。 (引发ArgumentError)

我的Gemfile:

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

2 个答案:

答案 0 :(得分:1)

这里有语法错误

RSpec.describe TyperController, type:controller do

将其更改为

RSpec.describe TyperController, type: :controller do

答案 1 :(得分:1)

我的错误:

config.before(:siute) do

应该是

config.before(:suite) do