A helper method keeps repeated test reporting code in one place.

test helper Test helpers make examples easier to read by naming repeated checking steps.

Test Helpers

multiplier
test_helpers.rb
Replay: real traced execution (multi-file project)
def check_equal(label, actual, expected)
  passed = actual == expected
  status = passed ? "pass" : "fail"
  "#{label}:#{status}"
end

multiplier = 3
actual = multiplier * 5
expected = 15
result = check_equal("multiply", actual, expected)

puts "multiplier=#{multiplier}"
puts "actual=#{actual}"
puts "expected=#{expected}"
puts "result=#{result}"
def check_equal(label, actual, expected)
  passed = actual == expected
  status = passed ? "pass" : "fail"
  "#{label}:#{status}"
end

multiplier = 2
actual = multiplier * 5
expected = 15
result = check_equal("multiply", actual, expected)

puts "multiplier=#{multiplier}"
puts "actual=#{actual}"
puts "expected=#{expected}"
puts "result=#{result}"
def check_equal(label, actual, expected)
  passed = actual == expected
  status = passed ? "pass" : "fail"
  "#{label}:#{status}"
end

multiplier = 4
actual = multiplier * 5
expected = 15
result = check_equal("multiply", actual, expected)

puts "multiplier=#{multiplier}"
puts "actual=#{actual}"
puts "expected=#{expected}"
puts "result=#{result}"
  1. multiplier ← 3, actual ← 15, expected ← 15

    7multiplier→ 3 = 3  #@multiplier=2, 48actual→ 15 = multiplier3 * 59expected→ 15 = 1510result = check_equal("multiply", actual15, expected15)
  2. passed ← true, status ← pass

    1def check_equal(labelmultiply, actual15, expected15)2  passed→ true = actual15 == expected153  status→ pass = passedtrue ? "pass" : "fail"4  "#{labelmultiply}:#{statuspass}"5end
  3. result ← multiply:pass

    9expected = 1510result→ multiply:pass = check_equal("multiply", actual15, expected15)1112puts "multiplier=#{multiplier3}"13puts "actual=#{actual15}"14puts "expected=#{expected15}"15puts "result=#{resultmultiply:pass}"
    outputmultiplier=3
    actual=15
    expected=15
    result=multiply:pass
  1. multiplier ← 2, actual ← 10, expected ← 15

    7multiplier→ 2 = 28actual→ 10 = multiplier2 * 59expected→ 15 = 1510result = check_equal("multiply", actual10, expected15)
  2. passed ← false, status ← fail

    1def check_equal(labelmultiply, actual10, expected15)2  passed→ false = actual10 == expected153  status→ fail = passedfalse ? "pass" : "fail"4  "#{labelmultiply}:#{statusfail}"5end
  3. result ← multiply:fail

    9expected = 1510result→ multiply:fail = check_equal("multiply", actual10, expected15)1112puts "multiplier=#{multiplier2}"13puts "actual=#{actual10}"14puts "expected=#{expected15}"15puts "result=#{resultmultiply:fail}"
    outputmultiplier=2
    actual=10
    expected=15
    result=multiply:fail
  1. multiplier ← 4, actual ← 20, expected ← 15

    7multiplier→ 4 = 48actual→ 20 = multiplier4 * 59expected→ 15 = 1510result = check_equal("multiply", actual20, expected15)
  2. passed ← false, status ← fail

    1def check_equal(labelmultiply, actual20, expected15)2  passed→ false = actual20 == expected153  status→ fail = passedfalse ? "pass" : "fail"4  "#{labelmultiply}:#{statusfail}"5end
  3. result ← multiply:fail

    9expected = 1510result→ multiply:fail = check_equal("multiply", actual20, expected15)1112puts "multiplier=#{multiplier4}"13puts "actual=#{actual20}"14puts "expected=#{expected15}"15puts "result=#{resultmultiply:fail}"
    outputmultiplier=4
    actual=20
    expected=15
    result=multiply:fail