error模块代码完善
This commit is contained in:
parent
424817e9a1
commit
d47a95df8d
@ -6,6 +6,6 @@ const (
|
|||||||
SessionSessionStartError Code = 5001001
|
SessionSessionStartError Code = 5001001
|
||||||
)
|
)
|
||||||
|
|
||||||
var strToCode = map[string]Code{
|
var CodeToStr = map[Code]string{
|
||||||
`"SESSION_MODULE_SESSION_START_ERROR"`: SessionSessionStartError,
|
SessionSessionStartError : `"SESSION_MODULE_SESSION_START_ERROR"`,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,9 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// The `Error`type defines custom error for Beego. It is used by every module
|
||||||
|
// in Beego. Each `Error` message contains three pieces of data: error code,
|
||||||
|
// error message. More docs http://beego.me/docs/module/error.md
|
||||||
type Error struct {
|
type Error struct {
|
||||||
Code codes.Code
|
Code codes.Code
|
||||||
Msg string
|
Msg string
|
||||||
@ -26,21 +29,24 @@ func Errorf(c codes.Code, format string, a ...interface{}) error {
|
|||||||
return Err(c, fmt.Sprintf(format, a...))
|
return Err(c, fmt.Sprintf(format, a...))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error returns formatted message for user.
|
||||||
func (e *Error) Error() string {
|
func (e *Error) Error() string {
|
||||||
codeSrt := strconv.FormatUint(uint64(e.GetCode()), 10)
|
codeSrt := strconv.FormatUint(uint64(e.GetCode()), 10)
|
||||||
return fmt.Sprintf("beego error: code = %s desc = %s", codeSrt, e.GetMessage())
|
return fmt.Sprintf("beego error: code = %s desc = %s", codeSrt, e.GetMessage())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Error) GetCode() codes.Code {
|
// GetCode returns Error's Code
|
||||||
if x != nil {
|
func (e *Error) GetCode() codes.Code {
|
||||||
return x.Code
|
if e != nil {
|
||||||
|
return e.Code
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Error) GetMessage() string {
|
// GetMessage returns Error's Msg.
|
||||||
if x != nil {
|
func (e *Error) GetMessage() string {
|
||||||
return x.Msg
|
if e != nil {
|
||||||
|
return e.Msg
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
151
core/error/error_test.go
Normal file
151
core/error/error_test.go
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
package error
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/beego/beego/v2/core/codes"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestErr(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
c codes.Code
|
||||||
|
msg string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
{name: "1", args: args{codes.SessionSessionStartError, codes.CodeToStr[codes.SessionSessionStartError]}, wantErr: true},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if err := Err(tt.args.c, tt.args.msg); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("Err() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestError_Error(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
Code codes.Code
|
||||||
|
Msg string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
{name: "1", fields: fields{codes.SessionSessionStartError, codes.CodeToStr[codes.SessionSessionStartError]}, want: "beego error: code = 5001001 desc = \"SESSION_MODULE_SESSION_START_ERROR\""},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
e := &Error{
|
||||||
|
Code: tt.fields.Code,
|
||||||
|
Msg: tt.fields.Msg,
|
||||||
|
}
|
||||||
|
if got := e.Error(); got != tt.want {
|
||||||
|
t.Errorf("Error() = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestError_GetCode(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
Code codes.Code
|
||||||
|
Msg string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
want codes.Code
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
{name: "1", fields: fields{codes.SessionSessionStartError, codes.CodeToStr[codes.SessionSessionStartError]}, want: codes.SessionSessionStartError},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
e := &Error{
|
||||||
|
Code: tt.fields.Code,
|
||||||
|
Msg: tt.fields.Msg,
|
||||||
|
}
|
||||||
|
if got := e.GetCode(); got != tt.want {
|
||||||
|
t.Errorf("GetCode() = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestError_GetMessage(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
Code codes.Code
|
||||||
|
Msg string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
{name: "1", fields: fields{codes.SessionSessionStartError, codes.CodeToStr[codes.SessionSessionStartError]}, want: codes.CodeToStr[codes.SessionSessionStartError]},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
e := &Error{
|
||||||
|
Code: tt.fields.Code,
|
||||||
|
Msg: tt.fields.Msg,
|
||||||
|
}
|
||||||
|
if got := e.GetMessage(); got != tt.want {
|
||||||
|
t.Errorf("GetMessage() = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestErrorf(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
c codes.Code
|
||||||
|
format string
|
||||||
|
a []interface{}
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
{name: "1", args: args{codes.SessionSessionStartError, "%s", []interface{}{codes.CodeToStr[codes.SessionSessionStartError]}}},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if err := Errorf(tt.args.c, tt.args.format, tt.args.a...); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("Errorf() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNew(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
c codes.Code
|
||||||
|
msg string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
args args
|
||||||
|
want *Error
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if got := New(tt.args.c, tt.args.msg); !reflect.DeepEqual(got, tt.want) {
|
||||||
|
t.Errorf("New() = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user