module MiniTest::Assertions

def assert_instance_of cls, obj, msg = nil

def assert_instance_of cls, obj, msg = nil
  msg = message(msg) { "Expected #{mu_pp(obj)} to be an instance of #{cls}, not #{obj.class}" }
  flip = (Module === obj) && ! (Module === cls) # HACK for specs
  obj, cls = cls, obj if flip
  assert cls === obj, msg
end