在rspec集成测试中使用嵌套模型构建模型

时间:2012-09-29 09:21:00

标签: ruby-on-rails-3 rspec integration-testing nested-attributes

我知道我可以在rspec中做一些事情:

let(:project) { Project.new }

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

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

我需要类似的东西:

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

但这似乎不起作用。

我如何在我的rspec测试中做到这一点?

1 个答案:

答案 0 :(得分:0)

不确定我是否理解你。如果Project和Task是模型,Project has_many任务,Task属于项目,然后(带FactoryGirl gem):

<强> factories.rb

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

中的

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

before { FactoryGirl.build(:project) }