【问题标题】:Stubbed specs are taking longer to run存根规范需要更长的时间才能运行
【发布时间】:2013-08-14 16:19:48
【问题描述】:

我决定尝试使用存根,因为我听说它们会使我的测试运行得更快:

他们已经离开了:

it "should create a new instance given a valid attribute" do
  User.create!(@attr)
end

it "should require a name" do
  no_name_user = User.new(@attr.merge(:name => ""))
  no_name_user.should_not be_valid
end

it "should require an email address" do
  no_email_user = User.new(@attr.merge(:email => ""))
  no_email_user.should_not be_valid
end

对此:

it "should create a new instance given a valid attribute" do
  user = FactoryGirl.build_stubbed(:user, @attr)
  user.should be_valid
end

it "should require a name" do
  no_name_user = FactoryGirl.build_stubbed(:user, @attr.merge(:name => ""))
  no_name_user.should_not be_valid
end

it "should require an email address" do
  no_email_user = FactoryGirl.build_stubbed(:user, @attr.merge(:email => ""))
  no_email_user.should_not be_valid
end

但要多花 10 秒才能运行。我的整个套房总共需要 5 分钟。我期待这样做会提高速度。

【问题讨论】:

  • build_stubbed 无法击败 new,但它绝对胜过 db hits
  • 您的模型中有关联吗?见blog.spoolz.com/2012/07/09/…
  • 感谢您的集体建议和链接。

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


【解决方案1】:

发生这种情况是因为我在 spec_helper.rb 中包含了 VCR、EmailSpec、DataBaseCleaner 和一堆其他东西。

tiered spec helper 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多