1

rspecで次のようなことができることを理解しています:

let(:project) { Project.new }

しかし、私のアプリでは、プロジェクトaccepts_nested_attributes_forタスクがあり、プロジェクトフォームを生成するときに、次を使用してタスクを作成します:

@project = Project.new
@project.tasks.build

次のようなものが必要です:

let(:project) { Project.new.tasks.build }

しかし、それはうまくいかないようです。

rspec テストで let としてこれを行うにはどうすればよいですか?

4

1 に答える 1

0

私があなたを正しく理解しているかどうかわかりません..とにかく、 Project と Task がモデルであり、 Project has_many tasks であり、 Task が project に属している場合 ( FactoryGirl gemを使用):

factory.rb

  factory :project do
    name "Foo"
  end
  factory :task do
    name "Bar"
    project
  end

スペックで:

let(:task) { FactoryGirl.build(:task) }

before { FactoryGirl.build(:project) } 
于 2012-09-29T09:35:52.423 に答える