源码索引 / CURRENT IMPLEMENTATION
learning/go-patterns/patterns/errors/errors_test.go
41 行 · 点击行号可定位;函数链接随声明位置更新,不手填行号。
跳到函数 / 声明
package errors
import (
"errors"
"testing"
)
func TestLoadWrapsCategoryAndKeepsDetails(t *testing.T) {
_, err := Load(map[string]string{}, "invoice-42")
if err == nil {
t.Fatal("Load() returned nil error")
}
if !errors.Is(err, ErrNotFound) {
t.Fatalf("errors.Is(err, ErrNotFound) = false; err = %v", err)
}
var missing *NotFoundError
if !errors.As(err, &missing) {
t.Fatalf("errors.As() = false; err = %v", err)
}
if missing.Key != "invoice-42" {
t.Fatalf("NotFoundError.Key = %q, want %q", missing.Key, "invoice-42")
}
}
func TestLoadReturnsValueWithoutAnError(t *testing.T) {
got, err := Load(map[string]string{"invoice-42": "paid"}, "invoice-42")
if err != nil {
t.Fatalf("Load() error = %v", err)
}
if got != "paid" {
t.Fatalf("Load() = %q, want %q", got, "paid")
}
}
func TestLookupErrorContainsStableMessage(t *testing.T) {
_, err := Lookup(nil, "missing")
if got, want := err.Error(), `item "missing" not found`; got != want {
t.Fatalf("error = %q, want %q", got, want)
}
}