Make benchmark more realistic

This commit is contained in:
Rohan Mitchell
2015-11-05 13:15:09 +11:00
parent 64e8927ae9
commit 2f4b5bad26

View File

@@ -3,9 +3,9 @@ require 'spec_helper'
describe Spree::OrdersController, type: :controller, performance: true do
let(:distributor) { create(:distributor_enterprise) }
let(:order_cycle) { create(:simple_order_cycle, distributors: [distributor], variants: products.map { |p| p.variants.first }) }
let(:products) { (0..9).map { create(:product) } }
let(:products) { (0...num_products).map { create(:product) } }
let(:order) { subject.current_order(true) }
let(:num_runs) { 2 }
let(:num_products) { 20 }
before do
order.set_distribution! distributor, order_cycle
@@ -16,26 +16,18 @@ describe Spree::OrdersController, type: :controller, performance: true do
describe "adding products to cart" do
it "adds products to cart" do
puts "1 product, #{num_runs} times..."
multi_benchmark(3) do
num_runs.times do
expect do
spree_post :populate, variants: {products[0].variants.first.id => 1}
end.to change(Spree::LineItem, :count).by(1)
order.empty!
puts "Pre-populating first product"
spree_post :populate, variants: {products[0].variants.first.id => 1}
result = Benchmark.measure do
(1..num_products).each do |num_products|
puts "Populating #{num_products} products"
variants = Hash[ products.map { |p| [p.variants.first.id, 1] }.first(num_products) ]
spree_post :populate, variants: variants
end
end
puts "10 products, #{num_runs} times..."
variants = Hash[ products.map { |p| [p.variants.first.id, 1] } ]
multi_benchmark(3) do
num_runs.times do
expect do
spree_post :populate, variants: variants
end.to change(Spree::LineItem, :count).by(10)
order.empty!
end
end
puts result
end
end
end