应该在之前(:每个)部分使用自定义方法

时间:2008-11-06 08:27:07

标签: ruby-on-rails rspec

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

1 个答案:

答案 0 :(得分:2)

应该可以将您的示例分为两个示例组,一个使用create_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%肯定它有效,但我过去看过类似的设置。