それぞれの特定のテストでのみ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私は働いていた組合を考え出したしかし、私は工場でそれらを定義したくはなく、形質でさえも定義したくありません。
FactoryGirl.define do
factory :project do
association :workspace, strategy: :build_stubbed
end
end
test "" do
project = build_stubbed(:project)
end
私はproject.workspaceを呼び出すことができますので、これは動作し、両方のは、私は(ID付き)有効な関連付けを作成することができますどのように有効なID
を持っていますが、データベースに触れることなく、のみに工場の女の子を使用して独立したオブジェクトを作成しますか?
あなたはRSpecのを使用している:あなたが
workspace.projects
が必要な場合はは、あなたがこれを使用できますか? –
質問はminitestとタグ付けされているので、いいえ、 – max