error模块代码完善
This commit is contained in:
parent
424817e9a1
commit
d47a95df8d
@ -6,6 +6,6 @@ const (
|
||||
SessionSessionStartError Code = 5001001
|
||||
)
|
||||
|
||||
var strToCode = map[string]Code{
|
||||
`"SESSION_MODULE_SESSION_START_ERROR"`: SessionSessionStartError,
|
||||
var CodeToStr = map[Code]string{
|
||||
SessionSessionStartError : `"SESSION_MODULE_SESSION_START_ERROR"`,
|
||||
}
|
||||
|
||||
@ -6,6 +6,9 @@ import (
|
||||
"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 {
|
||||
Code codes.Code
|
||||
Msg string
|
||||
@ -26,21 +29,24 @@ func Errorf(c codes.Code, format string, a ...interface{}) error {
|
||||
return Err(c, fmt.Sprintf(format, a...))
|
||||
}
|
||||
|
||||
// Error returns formatted message for user.
|
||||
func (e *Error) Error() string {
|
||||
codeSrt := strconv.FormatUint(uint64(e.GetCode()), 10)
|
||||
return fmt.Sprintf("beego error: code = %s desc = %s", codeSrt, e.GetMessage())
|
||||
}
|
||||
|
||||
func (x *Error) GetCode() codes.Code {
|
||||
if x != nil {
|
||||
return x.Code
|
||||
// GetCode returns Error's Code
|
||||
func (e *Error) GetCode() codes.Code {
|
||||
if e != nil {
|
||||
return e.Code
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Error) GetMessage() string {
|
||||
if x != nil {
|
||||
return x.Msg
|
||||
// GetMessage returns Error's Msg.
|
||||
func (e *Error) GetMessage() string {
|
||||
if e != nil {
|
||||
return e.Msg
|
||||
}
|
||||
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