1

我知道我可以在 rspec 中做类似的事情:

let(:project) { Project.new }

但是在我的应用程序中,一个项目接受_nested_attributes_for 任务,当我生成项目表单时,我使用以下方法构建了一个任务:

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

我需要类似的东西:

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

但这似乎不起作用。

在我的 rspec 测试中,我怎样才能做到这一点?

4

1 回答 1

0

不确定我是否理解正确..无论如何,如果 Project 和 Task 是模型,Project has_many tasks,Task 属于项目,那么(使用FactoryGirl gem):

工厂.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 回答