如何在RSPEC / FactoryGirl中获取嵌套Factory的对象

时间:2013-10-21 11:55:37

标签: ruby-on-rails rspec factory-bot

我通过嵌套表单同时创建两个模型,并希望使用此工厂测试功能:

factory :company do
  name "ACME"
  after(:build) do |company|
    company.users << FactoryGirl.build(:user, company: company)       
  end       
end

factory :user do
  first_name     "Foo"
  last_name      "Bar"
  email          "foo@bar.com"
  password       "foobar"
  password_confirmation "foobar"
  company  
end

现在我在RSPEC创建了一家公司,如

let(:company) { FactoryGirl.create(:company) }

并进行类似

的测试
it { should have_title(user.first_name) }

我想从用户的模型中获取用户的fisrt名称。现在我只能在RSPEC中访问公司的模型。

如何获取用户模型的属性?

1 个答案:

答案 0 :(得分:0)

首先你必须创建用户,但你只能在不保存的情况下构建:

company.users << FactoryGirl.create(:user)

FactoryGirl.create(:user, company: company)

接下来,您可以访问用户名,例如by(如果公司has_many:用户):

it { should have_title(company.users.first.first_name) }