각 특정 테스트에서만 ID가있는 연관을 생성하여 공장에서 정의하지 못하게하려고합니다.Factory_girl을 사용하여 시험 중 연관을 구축하십시오.
: 나는 Rails 4 Test Prescriptions*** RuntimeError Exception: stubbed models are not allowed to access the database - Project#save({:validate=>true})
Avoid defining associations automatically in factory_girl definitions. Set them test by test, as needed. You’ll wind up with more manageable test data.
class Workspace < ActiveRecord::Base
has_many :projects
end
class Project < ActiveRecord::Base
belongs_to :workspace
end
을이 나는 다음과 같은 오류를 제공하는 유효한 ID 년대를 만들 build_stubbed을 사용하고
test "" do
project_with_id = build_stubbed(:project)
workspace_with_id = build_stubbed(:workspace)
workspace_with_id.projects.push(project_with_id)
end
를 원하는 것입니다 다음 봤는데
그래서, 공장에서 여자의 책을 읽는 것 documentation 나는 일하는 협회를 생각해 냈다. , 그러나 나는 특성으로조차 공장에서 그들을 정의하고 싶지 않다. 내가 project.workspace를 호출 할 수 있기 때문에
FactoryGirl.define do
factory :project do
association :workspace, strategy: :build_stubbed
end
end
test "" do
project = build_stubbed(:project)
end
이 작동하고, 모두는 유효한 ID를 가지고
나는,하지만 공장 소녀를 사용하여 데이터베이스를 건드리지 않고 (ID)와 유효 연결을 만드는 방법 독립적 인 객체를 만드시겠습니까?
당신이 RSpec에를 사용 : 당신이
workspace.projects
필요한 경우, 당신은이를 사용할 수 있나요? –
질문은 minitest로 태그가 붙어있어서 – max