저는 테스트가 처음이므로 공장 소녀 테스트를 통해 처음 몇 개의 Rspec을 시험하고 있습니다. 나는 공장 여자를 사용하기 전까지 모든 것이 잘되고있다.레일 3 Factory_Girl 공장이 등록되지 않았습니다
사양/spec_helper.rb에게 다음과 같이
내 설정이다
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'database_cleaner'
require 'factory_girl_rails'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"
config.include FactoryGirl::Syntax::Methods
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
사양/모델/role_spec.rb
require 'spec_helper'
describe Role do
it "is valid" do
role = FactoryGirl.build(:role)
expect(role).to be_valid
end
end
사양/factories.rb
FactoryGirl.define do
factory :role do
rolesymbol "tst-admin"
name "test admin"
end
end
그러나 번들 exec rs를 실행할 때 PEC 또는 레이크 사양 나는 FactoryGirl 역할이 올바르게 정의하고, 규격이 정상적으로 작동 작동하는 것 같군 나에게 다음과 같은 오류
Failures:
1) Role is valid
Failure/Error: role = FactoryGirl.build(:role)
ArgumentError:
Factory not registered: role
# ./spec/models/role_spec.rb:12:in `block (2 levels) in <top (required)>'
을 얻을, 그래서 무슨 일이 일어나고 있는지에 관해서 손실에 있어요. 어떤 아이디어?
마이클
FactoryGirl.build (: role) 대신 build (: role)를 사용하면 어떻게됩니까? FactoryGirl – mguymon
을 직접 호출하는 대신 FactoryGirl에 rspec 도우미를 사용합니다.하지만 같은 문제는 좋은 생각입니다. Factory Girl이 등록한 것을 찾을 수있는 방법이 있습니까? 나는 공장이 등록되어 있지 않다는 불쾌한 느낌을 가지고있다. –
단일 파일을 공장 용으로 사용했을 때의 버그 일 수 있습니다. factories.rb를 spec/factories/roles.rb로 옮겨보십시오 (파일 이름의 복수를주의하십시오. 매번 저를 얻습니다). – mguymon