Factory Girl:NameError:未初始化的常量Vserver

时间:2016-02-15 21:16:25

标签: ruby rspec tdd sinatra factory-bot

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

宝石文件:

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

规格/工厂/ vserver.rb

require 'factory_girl'

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

规格/ 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

规格/ 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 app_spec.rb运行rspec文件时,出现以下错误。

NameError:未初始化的常量Vserver

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

代码:factory :vserver do假设您正在实例化一个名为Vserver的类。

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

如果您没有这样的课程,那么您需要重命名工厂,或者告诉它应该实例化哪个类。