如何来传递参数,一个父类“B”的ID,当创建()工厂是从rspec的调用时,子类中?

问题描述 投票:0回答:1

我需要写一个rspec的test.I有谁是与工厂创建莫名其妙创建方法父子实例变量。现在,我需要创建一个孩子,同父。

我呼吁创建(:class_a,ID:class_b.id)

ruby-on-rails-4 rspec factory-bot
1个回答
0
投票

从标签和上下文,我会假设你使用工厂机器人。如果你的工厂是正确的,你的测试可能会是这个样子(我要重命名模型“父”和“孩子”):

require 'rails_helper'

RSpec.describe Parent, type: :model do
  let(:parent) { create(:parent) }
  let!(:kid1) { create(:kid, parent_id: parent.id) }
  let!(:kid2) { create(:kid, parent_id: parent.id) }

  it 'is has 2 children' do
    expect(parent.kids.length).to eq(2)
    expect(kid1[:parent_id]).to eq(parent.id)
  end
end

先放过语句创建父的实例,但在测试中的某个地方只使用变量“父”后。第二和第三让利语句创建一个名为“KID1”和“KID-”孩子类的2个不同的实例。请注意!之后let语句?这意味着建立孩子正确的题。并创建了孩子们的时候,在创建父过,因为在创建孩子当“父”变量使用。

现在,你可以在它的块内写这样的一个测试英寸

© www.soinside.com 2019 - 2024. All rights reserved.