Skip to content

Commit 809b238

Browse files
lvan100lianghuan
authored andcommitted
show method name when not matched
1 parent f548310 commit 809b238

File tree

6 files changed

+44
-42
lines changed

6 files changed

+44
-42
lines changed

example/src_mock.go

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gsmock/mocker_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package gsmock_test
1818

1919
import (
2020
"context"
21+
"fmt"
2122
"reflect"
2223
"testing"
2324

@@ -127,7 +128,7 @@ func (c *MockClient) Query(req *Request, trace *Trace) (*Response, error) {
127128
if ret, ok := gsmock.Invoke(c.r, mockClientType, "Query", req, trace); ok {
128129
return gsmock.Unbox2[*Response, error](ret)
129130
}
130-
panic("mock error")
131+
panic(fmt.Sprintf("no mock code matched for %s.%s", mockClientType.Name(), "Query"))
131132
}
132133

133134
// MockQuery registers a mock implementation for the Query method.
@@ -178,6 +179,6 @@ func TestMockNoContext(t *testing.T) {
178179

179180
assert.Panic(t, func() {
180181
_, _ = c.Query(&Request{}, &Trace{})
181-
}, "mock error")
182+
}, "no mock code matched for MockClient.Query")
182183
}
183184
}

internal/mocker/mocker.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,17 +113,18 @@ func main() {
113113
"cvtParams": strings.Join(cvtParams, ", "),
114114
}
115115
if err := getTemplate(i, j).Execute(s, data); err != nil {
116-
panic(err)
116+
panic(fmt.Errorf("error executing template(%s): %w", mockerName, err))
117117
}
118118
}
119119
}
120120
b, err := format.Source(s.Bytes())
121121
if err != nil {
122-
panic(err)
122+
panic(fmt.Errorf("error formatting source code: %w", err))
123123
}
124-
err = os.WriteFile("../../gsmock/mocker.go", b, os.ModePerm)
124+
const fileName = "../../gsmock/mocker.go"
125+
err = os.WriteFile(fileName, b, os.ModePerm)
125126
if err != nil {
126-
panic(err)
127+
panic(fmt.Errorf("error writing file(%s): %w", fileName, err))
127128
}
128129
}
129130

main.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import (
3939
var stdOut io.Writer = os.Stdout
4040

4141
// ToolVersion is the version of the mock generation tool.
42-
const ToolVersion = "v0.0.4"
42+
const ToolVersion = "v0.0.5"
4343

4444
// flagVar holds the command-line flag values.
4545
var flagVar struct {
@@ -134,40 +134,40 @@ func run(param runParam) {
134134
"Package": packageName,
135135
"Imports": h.String(),
136136
}); err != nil {
137-
panic(err)
137+
panic(fmt.Errorf("error executing template(header): %w", err))
138138
}
139139

140140
for _, i := range interfaces {
141141
if err := tmplInterface.Execute(s, i); err != nil {
142-
panic(err)
142+
panic(fmt.Errorf("error executing template(interface): %w", err))
143143
}
144144
for _, m := range i.Methods {
145145
tmpl := getTmplMethod(m.ParamCount, m.ResultCount)
146146
if err := tmpl.Execute(s, map[string]any{
147147
"i": i,
148148
"m": m,
149149
}); err != nil {
150-
panic(err)
150+
panic(fmt.Errorf("error executing template(method): %w", err))
151151
}
152152
}
153153
}
154154

155155
// Format the generated source code.
156156
b, err := format.Source(s.Bytes())
157157
if err != nil {
158-
panic(err)
158+
panic(fmt.Errorf("error formatting source code: %w", err))
159159
}
160160

161161
// Output to file or stdout.
162162
switch {
163163
case param.outputFile == "":
164164
if _, err = stdOut.Write(b); err != nil {
165-
panic(err)
165+
panic(fmt.Errorf("error writing to stdout: %w", err))
166166
}
167167
default:
168168
outputFile := filepath.Join(param.sourceDir, param.outputFile)
169169
if err = os.WriteFile(outputFile, b, os.ModePerm); err != nil {
170-
panic(err)
170+
panic(fmt.Errorf("error writing to file(%s): %w", outputFile, err))
171171
}
172172
}
173173
}
@@ -234,7 +234,7 @@ type Method struct {
234234
func scanDir(dir string, ctx scanContext, pkgs map[string]string) []Interface {
235235
entries, err := os.ReadDir(dir)
236236
if err != nil {
237-
panic(err)
237+
panic(fmt.Errorf("error reading directory: %w", err))
238238
}
239239
var ret []Interface
240240
for _, entry := range entries {
@@ -258,7 +258,7 @@ func scanFile(ctx scanContext, file string, pkgs map[string]string) []Interface
258258
mode := parser.AllErrors
259259
node, err := parser.ParseFile(token.NewFileSet(), file, nil, mode)
260260
if err != nil {
261-
panic(err)
261+
panic(fmt.Errorf("error parsing file(%s): %w", file, err))
262262
}
263263

264264
needImports := make(map[string]string)

testdata/all_default/output.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func (impl *CloserMockImpl) Close() error {
2525
if ret, ok := gsmock.Invoke(impl.r, t, "Close"); ok {
2626
return gsmock.Unbox1[error](ret)
2727
}
28-
panic("no mock code matched")
28+
panic("no mock code matched for Closer.Close")
2929
}
3030

3131
func (impl *CloserMockImpl) MockClose() *gsmock.Mocker01[error] {

tmpl.go

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)