Skip to content

Commit 6fa1fcf

Browse files
committed
优化测试用例的代码行文。
1 parent 32e3141 commit 6fa1fcf

File tree

2 files changed

+439
-341
lines changed

2 files changed

+439
-341
lines changed

errors_test.go

Lines changed: 90 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -8,74 +8,57 @@ import (
88
)
99

1010
func TestGetExecutingSqlError(t *testing.T) {
11-
tests := []struct {
12-
name string
13-
err error
14-
rawSql string
15-
fixedSql string
16-
params []any
17-
wantErr string
18-
}{
19-
{
20-
name: "Basic Error Test",
21-
err: errors.New("test error"),
22-
rawSql: "SELECT * FROM users WHERE id = @p1",
23-
fixedSql: "SELECT * FROM users WHERE id = ?",
24-
params: []any{1},
25-
wantErr: "dbClient: failed to execute sql\nraw error: test error\nsql:\ninput sql=SELECT * FROM users WHERE id = @p1\nexecuting sql=SELECT * FROM users WHERE id = ?\nparams:\n@p1=1",
26-
},
27-
{
28-
name: "Named Parameter Test",
29-
err: errors.New("test error"),
30-
rawSql: "SELECT * FROM users WHERE name = @name",
31-
fixedSql: "SELECT * FROM users WHERE name = ?",
32-
params: []any{sql.Named("name", "test")},
33-
wantErr: "dbClient: failed to execute sql\nraw error: test error\nsql:\ninput sql=SELECT * FROM users WHERE name = @name\nexecuting sql=SELECT * FROM users WHERE name = ?\nparams:\n@name=test",
34-
},
35-
}
36-
37-
for _, tt := range tests {
38-
t.Run(tt.name, func(t *testing.T) {
39-
gotErr := getExecutingSqlError(tt.err, tt.rawSql, tt.fixedSql, tt.params)
40-
if gotErr.Error() != tt.wantErr {
41-
t.Errorf("getExecutingSqlError() error = %v, want %v", gotErr, tt.wantErr)
42-
}
43-
})
44-
}
11+
t.Run("Basic Error Test", func(t *testing.T) {
12+
err := errors.New("test error")
13+
rawSql := "SELECT * FROM users WHERE id = @p1"
14+
fixedSql := "SELECT * FROM users WHERE id = ?"
15+
params := []any{1}
16+
wantErr := "dbClient: failed to execute sql\nraw error: test error\nsql:\ninput sql=SELECT * FROM users WHERE id = @p1\nexecuting sql=SELECT * FROM users WHERE id = ?\nparams:\n@p1=1"
17+
18+
gotErr := getExecutingSqlError(err, rawSql, fixedSql, params)
19+
if gotErr.Error() != wantErr {
20+
t.Errorf("getExecutingSqlError() error = %v, want %v", gotErr, wantErr)
21+
}
22+
})
23+
24+
t.Run("Named Parameter Test", func(t *testing.T) {
25+
err := errors.New("test error")
26+
rawSql := "SELECT * FROM users WHERE name = @name"
27+
fixedSql := "SELECT * FROM users WHERE name = ?"
28+
params := []any{sql.Named("name", "test")}
29+
wantErr := "dbClient: failed to execute sql\nraw error: test error\nsql:\ninput sql=SELECT * FROM users WHERE name = @name\nexecuting sql=SELECT * FROM users WHERE name = ?\nparams:\n@name=test"
30+
31+
gotErr := getExecutingSqlError(err, rawSql, fixedSql, params)
32+
if gotErr.Error() != wantErr {
33+
t.Errorf("getExecutingSqlError() error = %v, want %v", gotErr, wantErr)
34+
}
35+
})
4536
}
4637

4738
func TestGetSqlError(t *testing.T) {
48-
tests := []struct {
49-
name string
50-
err error
51-
rawSql string
52-
params []any
53-
wantErr string
54-
}{
55-
{
56-
name: "Basic Error Test",
57-
err: ErrExpectedSizeWrong,
58-
rawSql: "UPDATE users SET name = @p1",
59-
params: []any{"test"},
60-
wantErr: "dbClient: effected rows was wrong\nsql:\ninput sql=UPDATE users SET name = @p1\nparams:\n@p1=test",
61-
},
62-
{
63-
name: "Named Parameter Test",
64-
err: ErrParseParamFailed,
65-
rawSql: "INSERT INTO users (name) VALUES (@name)",
66-
params: []any{sql.Named("name", "test")},
67-
wantErr: "dbClient: failed to parse named params\nsql:\ninput sql=INSERT INTO users (name) VALUES (@name)\nparams:\n@name=test",
68-
},
69-
}
70-
71-
for _, tt := range tests {
72-
t.Run(tt.name, func(t *testing.T) {
73-
gotErr := getSqlError(tt.err, tt.rawSql, tt.params)
74-
if gotErr.Error() != tt.wantErr {
75-
t.Errorf("getSqlError() error = %v, want %v", gotErr, tt.wantErr)
76-
}
77-
})
78-
}
39+
t.Run("Basic Error Test", func(t *testing.T) {
40+
err := ErrExpectedSizeWrong
41+
rawSql := "UPDATE users SET name = @p1"
42+
params := []any{"test"}
43+
wantErr := "dbClient: effected rows was wrong\nsql:\ninput sql=UPDATE users SET name = @p1\nparams:\n@p1=test"
44+
45+
gotErr := getSqlError(err, rawSql, params)
46+
if gotErr.Error() != wantErr {
47+
t.Errorf("getSqlError() error = %v, want %v", gotErr, wantErr)
48+
}
49+
})
50+
51+
t.Run("Named Parameter Test", func(t *testing.T) {
52+
err := ErrParseParamFailed
53+
rawSql := "INSERT INTO users (name) VALUES (@name)"
54+
params := []any{sql.Named("name", "test")}
55+
wantErr := "dbClient: failed to parse named params\nsql:\ninput sql=INSERT INTO users (name) VALUES (@name)\nparams:\n@name=test"
56+
57+
gotErr := getSqlError(err, rawSql, params)
58+
if gotErr.Error() != wantErr {
59+
t.Errorf("getSqlError() error = %v, want %v", gotErr, wantErr)
60+
}
61+
})
7962
}
8063

8164
func TestCutLongStringParams(t *testing.T) {
@@ -85,48 +68,49 @@ func TestCutLongStringParams(t *testing.T) {
8568
// 为了便于测试,将最大长度设置为较小的值
8669
MaxLengthErrorValue = 10
8770

88-
tests := []struct {
89-
name string
90-
paramVal any
91-
want any
92-
}{
93-
{
94-
name: "Short String",
95-
paramVal: "test",
96-
want: "test",
97-
},
98-
{
99-
name: "Long String",
100-
paramVal: "this is a very long string",
101-
want: "this is a ...(length=24)",
102-
},
103-
{
104-
name: "Non-String Type",
105-
paramVal: 123,
106-
want: 123,
107-
},
108-
{
109-
name: "Stringer Interface",
110-
paramVal: testStringer{"this is a very long string"},
111-
want: "this is a ...(length=24)",
112-
},
113-
}
114-
115-
for _, tt := range tests {
116-
t.Run(tt.name, func(t *testing.T) {
117-
got := cutLongStringParams(tt.paramVal)
118-
if got != tt.want {
119-
// 对于字符串类型的结果,检查是否包含预期的内容
120-
if s, ok := got.(string); ok {
121-
if !strings.Contains(s, "...(length=") {
122-
t.Errorf("cutLongStringParams() = %v, want %v", got, tt.want)
123-
}
124-
} else {
125-
t.Errorf("cutLongStringParams() = %v, want %v", got, tt.want)
126-
}
71+
t.Run("Short String", func(t *testing.T) {
72+
paramVal := "test"
73+
want := "test"
74+
got := cutLongStringParams(paramVal)
75+
if got != want {
76+
t.Errorf("cutLongStringParams() = %v, want %v", got, want)
77+
}
78+
})
79+
80+
t.Run("Long String", func(t *testing.T) {
81+
paramVal := "this is a very long string"
82+
want := "this is a ...(length=24)"
83+
got := cutLongStringParams(paramVal)
84+
if s, ok := got.(string); ok {
85+
if !strings.Contains(s, "...(length=") {
86+
t.Errorf("cutLongStringParams() = %v, want %v", got, want)
87+
}
88+
} else {
89+
t.Errorf("cutLongStringParams() = %v, want %v", got, want)
90+
}
91+
})
92+
93+
t.Run("Non-String Type", func(t *testing.T) {
94+
paramVal := 123
95+
want := 123
96+
got := cutLongStringParams(paramVal)
97+
if got != want {
98+
t.Errorf("cutLongStringParams() = %v, want %v", got, want)
99+
}
100+
})
101+
102+
t.Run("Stringer Interface", func(t *testing.T) {
103+
paramVal := testStringer{"this is a very long string"}
104+
want := "this is a ...(length=24)"
105+
got := cutLongStringParams(paramVal)
106+
if s, ok := got.(string); ok {
107+
if !strings.Contains(s, "...(length=") {
108+
t.Errorf("cutLongStringParams() = %v, want %v", got, want)
127109
}
128-
})
129-
}
110+
} else {
111+
t.Errorf("cutLongStringParams() = %v, want %v", got, want)
112+
}
113+
})
130114
}
131115

132116
// 用于测试 Stringer 接口的辅助类型

0 commit comments

Comments
 (0)