Advertisement
terraplane

instances_counter__module_spec.rb

Jun 2nd, 2021
1,566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 0.83 KB | None | 0 0
  1. require 'spec_helper'
  2.  
  3. module Counter
  4.   def initialize
  5.     @@instances_counter += 1
  6.   end
  7.  
  8.   def self.instances_count
  9.     @@instances_counter
  10.   end
  11.  
  12.   def self.reset_counter
  13.     @@instances_counter = 0
  14.   end
  15. end
  16.  
  17. class Car
  18.   include Counter
  19. end
  20.  
  21. class Truck
  22.   include Counter
  23. end
  24.  
  25. class Van
  26.   include Counter
  27. end
  28.  
  29. describe 'Instance counter' do
  30.   before { Counter.reset_counter }
  31.  
  32.   it 'works with 2 cars' do
  33.     Car.new
  34.     Car.new
  35.  
  36.     expect(Counter.instances_count).to eq(2)
  37.   end
  38.  
  39.   it 'works with car, van and truck' do
  40.     Car.new
  41.     Van.new
  42.     Truck.new
  43.  
  44.     expect(Counter.instances_count).to eq(3)
  45.   end
  46.  
  47.   it 'works with 2 cars, 4 vans and 3 trucks' do
  48.     2.times { Car.new }
  49.     4.times { Van.new }
  50.     3.times { Truck.new }
  51.  
  52.     expect(Counter.instances_count).to eq(9)
  53.   end
  54. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement