Testing Basics
Test Helpers
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
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}"
multiplier ← 3, actual ← 15, expected ← 15
7multiplier→ 3 = 3 #@multiplier=2, 48actual→ 15 = multiplier3 * 59expected→ 15 = 1510result = check_equal("multiply", actual15, expected15)passed ← true, status ← pass
1def check_equal(labelmultiply, actual15, expected15)2 passed→ true = actual15 == expected153 status→ pass = passedtrue ? "pass" : "fail"4 "#{labelmultiply}:#{statuspass}"5endresult ← 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
multiplier ← 2, actual ← 10, expected ← 15
7multiplier→ 2 = 28actual→ 10 = multiplier2 * 59expected→ 15 = 1510result = check_equal("multiply", actual10, expected15)passed ← false, status ← fail
1def check_equal(labelmultiply, actual10, expected15)2 passed→ false = actual10 == expected153 status→ fail = passedfalse ? "pass" : "fail"4 "#{labelmultiply}:#{statusfail}"5endresult ← 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
multiplier ← 4, actual ← 20, expected ← 15
7multiplier→ 4 = 48actual→ 20 = multiplier4 * 59expected→ 15 = 1510result = check_equal("multiply", actual20, expected15)passed ← false, status ← fail
1def check_equal(labelmultiply, actual20, expected15)2 passed→ false = actual20 == expected153 status→ fail = passedfalse ? "pass" : "fail"4 "#{labelmultiply}:#{statusfail}"5endresult ← 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