Testing Basics
Edge Cases
Edge-case tests cover boundary inputs that ordinary examples might miss.
edge case
An edge case is an input near a boundary, such as an empty string or extra spaces.
Edge Cases
edge_cases.go
Replay: real traced execution (multi-file project)
package main
import (
"fmt"
"strings"
)
func normalizeName(name string) string {
trimmed := strings.TrimSpace(name)
if trimmed == "" {
return "Anonymous"
}
return trimmed
}
func main() {
var rawName = " Ada "
normalized := normalizeName(rawName)
blankInput := strings.TrimSpace(rawName) == ""
usesFallback := normalized == "Anonymous"
fmt.Println("raw=", rawName)
fmt.Println("normalized=", normalized)
fmt.Println("blankInput=", blankInput)
fmt.Println("fallback=", usesFallback)
}
package main
import (
"fmt"
"strings"
)
func normalizeName(name string) string {
trimmed := strings.TrimSpace(name)
if trimmed == "" {
return "Anonymous"
}
return trimmed
}
func main() {
var rawName = ""
normalized := normalizeName(rawName)
blankInput := strings.TrimSpace(rawName) == ""
usesFallback := normalized == "Anonymous"
fmt.Println("raw=", rawName)
fmt.Println("normalized=", normalized)
fmt.Println("blankInput=", blankInput)
fmt.Println("fallback=", usesFallback)
}
package main
import (
"fmt"
"strings"
)
func normalizeName(name string) string {
trimmed := strings.TrimSpace(name)
if trimmed == "" {
return "Anonymous"
}
return trimmed
}
func main() {
var rawName = " Go "
normalized := normalizeName(rawName)
blankInput := strings.TrimSpace(rawName) == ""
usesFallback := normalized == "Anonymous"
fmt.Println("raw=", rawName)
fmt.Println("normalized=", normalized)
fmt.Println("blankInput=", blankInput)
fmt.Println("fallback=", usesFallback)
}
rawName ← " Ada "
16func main() {17 var rawName→ " Ada " = " Ada " //@rawName="", " Go "18 normalized := normalizeName(rawName" Ada ")19 blankInput := strings.TrimSpace(rawName) == ""trimmed ← "Ada"
8func normalizeName(name" Ada " string) string {9 trimmed→ "Ada" := strings.TrimSpace(name" Ada ")10 if trimmed == "" {11 return "Anonymous"12 }13 return trimmed"Ada"14}normalized ← "Ada", blankInput ← false, usesFallback ← false
17 var rawName = " Ada " //@rawName="", " Go "18 normalized→ "Ada" := normalizeName(rawName" Ada ")19 blankInput→ false := strings.TrimSpace(rawName" Ada ") == ""20 usesFallback→ false := normalized"Ada" == "Anonymous"2122 fmt.Println("raw=", rawName" Ada ")23 fmt.Println("normalized=", normalized"Ada")24 fmt.Println("blankInput=", blankInputfalse)25 fmt.Println("fallback=", usesFallbackfalse)26}outputraw= Ada normalized= Ada blankInput= false fallback= false
rawName ← ""
16func main() {17 var rawName→ "" = ""18 normalized := normalizeName(rawName"")19 blankInput := strings.TrimSpace(rawName) == ""trimmed ← ""
8func normalizeName(name"" string) string {9 trimmed→ "" := strings.TrimSpace(name"")10 if trimmed == "" {if trimmed == ""
9trimmed := strings.TrimSpace(name)10if trimmed"" == "" {11 return "Anonymous"12}normalized ← "Anonymous", blankInput ← true, usesFallback ← true
17 var rawName = ""18 normalized→ "Anonymous" := normalizeName(rawName"")19 blankInput→ true := strings.TrimSpace(rawName"") == ""20 usesFallback→ true := normalized"Anonymous" == "Anonymous"2122 fmt.Println("raw=", rawName"")23 fmt.Println("normalized=", normalized"Anonymous")24 fmt.Println("blankInput=", blankInputtrue)25 fmt.Println("fallback=", usesFallbacktrue)26}outputraw= normalized= Anonymous blankInput= true fallback= true
rawName ← " Go "
16func main() {17 var rawName→ " Go " = " Go "18 normalized := normalizeName(rawName" Go ")19 blankInput := strings.TrimSpace(rawName) == ""trimmed ← "Go"
8func normalizeName(name" Go " string) string {9 trimmed→ "Go" := strings.TrimSpace(name" Go ")10 if trimmed == "" {11 return "Anonymous"12 }13 return trimmed"Go"14}normalized ← "Go", blankInput ← false, usesFallback ← false
17 var rawName = " Go "18 normalized→ "Go" := normalizeName(rawName" Go ")19 blankInput→ false := strings.TrimSpace(rawName" Go ") == ""20 usesFallback→ false := normalized"Go" == "Anonymous"2122 fmt.Println("raw=", rawName" Go ")23 fmt.Println("normalized=", normalized"Go")24 fmt.Println("blankInput=", blankInputfalse)25 fmt.Println("fallback=", usesFallbackfalse)26}outputraw= Go normalized= Go blankInput= false fallback= false