module MiniTest::Assertions

Public Instance Methods

assert_equal_contents(expected, actual, message = nil) click to toggle source

Contents must be the same, but order doesn't matter. (In rspec, this is “`.should =~“`)

# File lib/minitest/great_expectations.rb, line 8
def assert_equal_contents(expected, actual, message = nil)
  e_ary = expected.to_a
  a_ary = actual.to_a
  error_msgs = []
  missing_from_actual = e_ary - a_ary
  unless missing_from_actual.empty?
    error_msgs << "Missing expected elements:\n #{mu_pp missing_from_actual}"
  end
  missing_from_expected = a_ary - e_ary
  unless missing_from_expected.empty?
    error_msgs << "Extraneous actual elements:\n  #{mu_pp missing_from_expected}"
  end
  unless error_msgs.empty?
    message ||= "Expected:\n  #{mu_pp expected}\nDid not match contents of Actual:\n  #{mu_pp actual}."
    flunk("#{message}\n#{error_msgs.join("\n")}")
  end
end
assert_equal_hash(expected, actual, message = nil) click to toggle source

Hash keys and values must be the same

# File lib/minitest/great_expectations.rb, line 27
def assert_equal_hash(expected, actual, message = nil)
  e_keys = expected.keys
  a_keys = actual.keys
  error_msgs = []
  missing_from_actual = e_keys - a_keys
  unless missing_from_actual.empty?
    error_msgs << "Missing expected keys:\n #{mu_pp missing_from_actual}"
  end
  missing_from_expected = a_keys - e_keys
  unless missing_from_expected.empty?
    error_msgs << "Extraneous actual keys:\n  #{mu_pp missing_from_expected}"
  end
  intersecting_keys = e_keys & a_keys
  intersecting_keys.each do |ea|
    exp = expected[ea]
    act = actual[ea]
    unless exp == act
      error_msgs << "Expected [#{mu_pp ea}]: #{mu_pp exp}\nActual [#{mu_pp ea}]: #{mu_pp act}"
    end
  end
  unless error_msgs.empty?
    message ||= "Expected:\n  #{mu_pp expected}\ndid not equal Actual:\n  #{mu_pp actual}."
    flunk("#{message}\n#{error_msgs.join("\n")}")
  end
end
assert_false(obj, msg = nil) click to toggle source

The first parameter must be “`false“`, not just coercible to false.

# File lib/minitest/great_expectations.rb, line 82
def assert_false(obj, msg = nil)
  msg = message(msg) { "<false> expected but was #{mu_pp obj}" }
  assert obj == false, msg
end
assert_falsy(obj, msg = nil) click to toggle source
# File lib/minitest/great_expectations.rb, line 87
def assert_falsy(obj, msg = nil)
  msg = message(msg) { "Expected falsy but was #{mu_pp obj}" }
  assert !obj, msg
end
assert_includes_all(expected, actual, message = nil) click to toggle source

Every element in actual must be in expected, but expected may have additional elements.

# File lib/minitest/great_expectations.rb, line 54
def assert_includes_all(expected, actual, message = nil)
  missing_from_expected = expected.to_a - actual.to_a
  unless missing_from_expected.empty?
    message ||= "Expected:\n  #{mu_pp expected}\ndid not contain every element in Actual:\n  #{mu_pp actual}."
    flunk("#{message}\nMissing expected elements:\n  #{mu_pp missing_from_expected}")
  end
end
assert_includes_none(expected, actual, message = nil) click to toggle source
# File lib/minitest/great_expectations.rb, line 62
def assert_includes_none(expected, actual, message = nil)
  unexpected = expected.to_a & actual.to_a
  unless unexpected.empty?
    message ||= "Expected:\n  #{mu_pp expected}\ncontained elements in Actual:\n  #{mu_pp actual}."
    flunk("#{message}\nUnexpected elements:\n  #{mu_pp unexpected.sort}")
  end
end
assert_true(obj, msg = nil) click to toggle source

The first parameter must be “`true“`, not coercible to true.

# File lib/minitest/great_expectations.rb, line 71
def assert_true(obj, msg = nil)
  msg = message(msg) { "<true> expected but was #{mu_pp obj}" }
  assert obj == true, msg
end
assert_truthy(obj, msg = nil) click to toggle source
# File lib/minitest/great_expectations.rb, line 76
def assert_truthy(obj, msg = nil)
  msg = message(msg) { "Expected truthy, but was #{mu_pp obj}" }
  assert obj, msg
end