"A stateist tester asserts that a method returns a particular value. A mockist tester asserts that a method triggers a specific set of interactions with the object's dependencies." - James Golick @nateberkopec
def self.autorun if autorun_disabled? RSpec.deprecate("Requiring `rspec/autorun` when running RSpec via the `rspec` command") return elsif installed_at_exit? || running_in_drb? return end at_exit { perform_at_exit } @installed_at_exit = true end def self.perform_at_exit return unless $!.nil? || $!.is_a?(SystemExit) invoke end def self.invoke disable_autorun! status = run(ARGV, $stderr, $stdout).to_i exit(status) if status != 0 end def self.disable_autorun! @autorun_disabled = true end def self.installed_at_exit? @installed_at_exit ||= false end @nateberkopec
# minitest.rb module Minitest class Runnable # Minitest::Test is a Runnable def self.runnables @@runnables end def self.inherited klass # :nodoc: self.runnables << klass super end end end @nateberkopec
# Minitest::Test # This was called in Minitest.run def self.runnable_methods methods = methods_matching(/^test_/) #one-liner that returns a list of methods as strings case self.test_order when :random, :parallel then max = methods.size methods.sort.sort_by { rand max } when :alpha, :sorted then methods.sort else raise "Unknown test_order: #{self.test_order.inspect}" end end @nateberkopec