Testing Basics
Error Checks
Tests often check whether an error is returned for invalid input.
Error Checks
error_checks.go
package main
import (
"errors"
"fmt"
)
func divide(total int, parts int) (int, error) {
if parts == 0 {
return 0, errors.New("parts must not be zero")
}
return total / parts, nil
}
func main() {
var parts =
value, err := divide(10, parts)
hasError := err != nil
status := "pass"
if hasError {
status = "handled"
}
fmt.Println("parts=", parts)
fmt.Println("value=", value)
fmt.Println("hasError=", hasError)
fmt.Println("status=", status)
}
package main
import (
"errors"
"fmt"
)
func divide(total int, parts int) (int, error) {
if parts == 0 {
return 0, errors.New("parts must not be zero")
}
return total / parts, nil
}
func main() {
var parts =
value, err := divide(10, parts)
hasError := err != nil
status := "pass"
if hasError {
status = "handled"
}
fmt.Println("parts=", parts)
fmt.Println("value=", value)
fmt.Println("hasError=", hasError)
fmt.Println("status=", status)
}
package main
import (
"errors"
"fmt"
)
func divide(total int, parts int) (int, error) {
if parts == 0 {
return 0, errors.New("parts must not be zero")
}
return total / parts, nil
}
func main() {
var parts =
value, err := divide(10, parts)
hasError := err != nil
status := "pass"
if hasError {
status = "handled"
}
fmt.Println("parts=", parts)
fmt.Println("value=", value)
fmt.Println("hasError=", hasError)
fmt.Println("status=", status)
}
error check
An error check can test both the successful result and the error status without crashing the program.