我正在编写一个ActiveRecordRuby应用程序,不使用Rails。我想用FactoryGirl测试模型,但我正在努力配置。考虑到未初始化的常量错误,我猜它无法在中找到模型
lib/models
文件夹
我想知道rspec/FactoryGirl期望的文件夹结构是什么,或者我如何告知它模型位置。
rspec-fd规范/模型/用户规范.rb
â¦/spec/models/user_spec.rb:3:in `<top (required)>': uninitialized constant User (NameError)
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `load'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `each'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `load_spec_files'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100:in `setup'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in `run'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke'
from /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.4/exe/rspec:4:in `<top (required)>'
from ./bin/rspec:17:in `load'
from ./bin/rspec:17:in `<main>'
spec/models/user.rb
describe User, type: :model do
it 'can be instantiated' do
user = User.new
expect(user).to be_a User
end
end
lib/models/user.rb
class User < ActiveRecord::Base
end
我已经使用创建了RSpec配置
rspec --init
:
.rspec
--color
--require spec_helper
spec/spec_helper.rb
require 'factory_girl'
require_relative 'support/factory_girl'
RSpec.configure do |config|
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = true
end
config.shared_context_metadata_behavior = :apply_to_host_groups
end
规格/支持/工厂_girl.rb
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
config.before(:suite) do
FactoryGirl.find_definitions
end
end
spec/factories.rb
FactoryGirl.define do
factory :user do
username "johnny"
end
end