Sha256: 606c5fa6a5782dd708c4f6c5d48d4cc92268d54b7327b176fd858e07b04568ad
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
require 'rom-factory' require 'rom-core' require 'active_record' require 'factory_bot' require 'fabrication' require 'benchmark/ips' DATABASE_URL = 'postgres://localhost/rom_factory_bench'.freeze rom = ROM.container(:sql, DATABASE_URL) do |conf| conf.default.connection.create_table?(:users) do primary_key :id column :last_name, String, null: false column :first_name, String, null: false column :admin, TrueClass end conf.relation(:users) do schema(infer: true) end end factory = ROM::Factory.configure { |c| c.rom = rom } factory.define(:user) do |f| f.first_name "John" f.last_name "Doe" f.admin false end class User < ActiveRecord::Base end ActiveRecord::Base.establish_connection(DATABASE_URL) FactoryBot.define do factory(:user) do first_name "John" last_name "Doe" admin false end end Fabricator(:user) do first_name "John" last_name "Doe" admin false end Benchmark.ips do |x| x.report('rom-factory persisted struct') do 1000.times do factory[:user] end end x.report('factory_bot') do 1000.times do FactoryBot.create(:user) end end x.report('fabrication') do 1000.times do Fabricate(:user) end end x.compare! end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rom-factory-0.7.0 | benchmarks/basic.rb |
rom-factory-0.6.0 | benchmarks/basic.rb |