Ruby on rails 在before(:each)部分中是否应使用自定义方法

Ruby on rails 在before(:each)部分中是否应使用自定义方法,ruby-on-rails,rspec,Ruby On Rails,Rspec,我在模型类别上有一个名为create_main的方法,用于创建主类别。我应该在before(:each)部分使用此方法,即使该方法本身必须进行测试,还是应该使用rails内置功能手动创建主类别。应该可以将示例划分为两个示例组,其中一个组使用create\u main调用before(:each),您可以使用它来测试除create_main之外的所有内容。然后,您有另一个子集,其中before(:each)不调用create_main,这里您测试create_main 在您的情况下,我认为您可以尝

我在模型类别上有一个名为create_main的方法,用于创建主类别。我应该在before(:each)部分使用此方法,即使该方法本身必须进行测试,还是应该使用rails内置功能手动创建主类别。

应该可以将示例划分为两个示例组,其中一个组使用create\u main调用before(:each),您可以使用它来测试除create_main之外的所有内容。然后,您有另一个子集,其中before(:each)不调用create_main,这里您测试create_main

在您的情况下,我认为您可以尝试以下方法:

describe Category, " without a main category" do
  before(:each) do
    # No call to create_main here
  end

  it "should create the main category" do
    # Here we test that create_main is working
  end
end

describe Category, " with a main category already created" do
  before(:each) do
    # This time, we do call create_main to set up the object as necessary
  end

  # More examples go here that depend on create_main
end
试试看。我不是100%确定它是否有效,但我在过去见过类似的设置