Testing Basics
Helper Functions
Helper functions keep repeated test reporting logic in one place.
test helper
A helper function gives repeated checks a clear name and return value.
Helper Functions
helper_functions.go
Replay: real traced execution (multi-file project)
package main
import "fmt"
func checkEqual(actual int, expected int) string {
if actual == expected {
return "pass"
}
return "fail"
}
func main() {
var multiplier = 3
actual := multiplier * 5
expected := 15
result := checkEqual(actual, expected)
fmt.Println("multiplier=", multiplier)
fmt.Println("actual=", actual)
fmt.Println("expected=", expected)
fmt.Println("result=", result)
}
package main
import "fmt"
func checkEqual(actual int, expected int) string {
if actual == expected {
return "pass"
}
return "fail"
}
func main() {
var multiplier = 2
actual := multiplier * 5
expected := 15
result := checkEqual(actual, expected)
fmt.Println("multiplier=", multiplier)
fmt.Println("actual=", actual)
fmt.Println("expected=", expected)
fmt.Println("result=", result)
}
package main
import "fmt"
func checkEqual(actual int, expected int) string {
if actual == expected {
return "pass"
}
return "fail"
}
func main() {
var multiplier = 4
actual := multiplier * 5
expected := 15
result := checkEqual(actual, expected)
fmt.Println("multiplier=", multiplier)
fmt.Println("actual=", actual)
fmt.Println("expected=", expected)
fmt.Println("result=", result)
}
multiplier ← 3, actual ← 15, expected ← 15
12func main() {13 var multiplier→ 3 = 3 //@multiplier=2, 414 actual→ 15 := multiplier3 * 515 expected→ 15 := 1516 result := checkEqual(actual15, expected15)func checkEqual(actual int, expected int) string
5func checkEqual(actual15 int, expected15 int) string {6 if actual == expected {if actual == expected
5func checkEqual(actual int, expected int) string {6 if actual15 == expected15 {7 return "pass"8 }result ← "pass"
15 expected := 1516 result→ "pass" := checkEqual(actual15, expected15)1718 fmt.Println("multiplier=", multiplier3)19 fmt.Println("actual=", actual15)20 fmt.Println("expected=", expected15)21 fmt.Println("result=", result"pass")22}outputmultiplier= 3 actual= 15 expected= 15 result= pass
multiplier ← 2, actual ← 10, expected ← 15
12func main() {13 var multiplier→ 2 = 214 actual→ 10 := multiplier2 * 515 expected→ 15 := 1516 result := checkEqual(actual10, expected15)func checkEqual(actual int, expected int) string
5func checkEqual(actual10 int, expected15 int) string {6 if actual == expected {7 return "pass"8 }9 return "fail"10}result ← "fail"
15 expected := 1516 result→ "fail" := checkEqual(actual10, expected15)1718 fmt.Println("multiplier=", multiplier2)19 fmt.Println("actual=", actual10)20 fmt.Println("expected=", expected15)21 fmt.Println("result=", result"fail")22}outputmultiplier= 2 actual= 10 expected= 15 result= fail
multiplier ← 4, actual ← 20, expected ← 15
12func main() {13 var multiplier→ 4 = 414 actual→ 20 := multiplier4 * 515 expected→ 15 := 1516 result := checkEqual(actual20, expected15)func checkEqual(actual int, expected int) string
5func checkEqual(actual20 int, expected15 int) string {6 if actual == expected {7 return "pass"8 }9 return "fail"10}result ← "fail"
15 expected := 1516 result→ "fail" := checkEqual(actual20, expected15)1718 fmt.Println("multiplier=", multiplier4)19 fmt.Println("actual=", actual20)20 fmt.Println("expected=", expected15)21 fmt.Println("result=", result"fail")22}outputmultiplier= 4 actual= 20 expected= 15 result= fail