errors_test.go 823 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package fserr
  2. import (
  3. "errors"
  4. "fmt"
  5. "testing"
  6. )
  7. var testErr = newError(ErrUnknownCode, "测试错误")
  8. func TestErrors(t *testing.T) {
  9. fmt.Println("测试错误打印:", testErr)
  10. Func1()
  11. err := testErr.WithStack()
  12. fmt.Println("测试WithStack错误打印:", err)
  13. isRight := errors.Is(err, testErr)
  14. if !isRight {
  15. t.Fatal("Is错误")
  16. }
  17. targetErr := &Error{}
  18. asRight := errors.As(err, &targetErr)
  19. if !asRight {
  20. t.Fatal("As错误")
  21. }
  22. fmt.Println("测试目标错误打印:", targetErr)
  23. if !errors.Is(err, targetErr) {
  24. t.Fatal("目标错误和原始错误不一致")
  25. }
  26. if err != targetErr {
  27. t.Fatal("目标错误和原始错误不一致")
  28. }
  29. }
  30. func Func1() {
  31. Func2()
  32. }
  33. func Func2() {
  34. Func3()
  35. }
  36. func Func3() {
  37. err := testErr.WithStack()
  38. fmt.Println("测试Func3错误打印:", err)
  39. }