Factory Girl: NameError: uninitialized constant Vserver

Factory Girl: NameError: uninitialized constant Vserver

我正在尝试使用 Factory Girl 和 Rspec 为我的 Sinatra 应用程序设置单元测试。

Gem 文件:

group :test do
  gem "rack-test"
  gem "fuubar"
  gem "factory_girl"
  gem "yard"
end

spec/factories/vserver.rb

require 'factory_girl'

FactoryGirl.define do
  factory :vserver do
    first_name "John"
    last_name  "Doe"
  end
end

spec/spec_helper.rb

require File.join(File.dirname(__FILE__), "..", "app.rb")

%w{
  rubygems
  sinatra
  dm-core
  rack/test
  uuid
  factory_girl
  rspec
  pp

  spec/factories/vserver
}.each { |r| require r }

set :environment, :test

# RSpec without Rails
RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end

spec/app_spec.rb

require './spec_helper.rb'
require 'factory_girl'

describe "Cdot" do

include Rack::Test::Methods

def app
  StorageApi
end

it 'vserver' do

  FactoryGirl.build(:vserver)

end

end

问题:当我使用命令 运行 rspec 文件时:rspec app_spec.rb,出现以下错误。

NameError:未初始化常量 Vserver

非常感谢您的帮助。

代码:factory :vserver do 假定您有一个名为 Vserver 的 class,您正在实例化。

如果您有这样的 class,那么您需要将其包含在您的规范中。

如果您没有这样的 class,那么您要么需要重命名工厂,要么告诉它 class 它应该实例化什么。