chore: simplify tests with logtest (#3184)

This commit is contained in:
Kevin Wan
2023-04-29 20:36:29 +08:00
committed by GitHub
parent c0f8a58ed7
commit 14caf5c799
24 changed files with 223 additions and 315 deletions

View File

@@ -9,7 +9,7 @@ import (
red "github.com/go-redis/redis/v8"
"github.com/stretchr/testify/assert"
"github.com/zeromicro/go-zero/core/logx"
"github.com/zeromicro/go-zero/core/logx/logtest"
ztrace "github.com/zeromicro/go-zero/core/trace"
tracesdk "go.opentelemetry.io/otel/trace"
)
@@ -47,8 +47,7 @@ func TestHookProcessCase2(t *testing.T) {
})
defer ztrace.StopAgent()
w, restore := injectLog()
defer restore()
w := logtest.NewCollector(t)
ctx, err := durationHook.BeforeProcess(context.Background(), red.NewCmd(context.Background()))
if err != nil {
@@ -115,8 +114,7 @@ func TestHookProcessPipelineCase2(t *testing.T) {
})
defer ztrace.StopAgent()
w, restore := injectLog()
defer restore()
w := logtest.NewCollector(t)
ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{
red.NewCmd(context.Background()),
@@ -135,8 +133,7 @@ func TestHookProcessPipelineCase2(t *testing.T) {
}
func TestHookProcessPipelineCase3(t *testing.T) {
w, restore := injectLog()
defer restore()
w := logtest.NewCollector(t)
assert.Nil(t, durationHook.AfterProcessPipeline(context.Background(), []red.Cmder{
red.NewCmd(context.Background()),
@@ -145,8 +142,7 @@ func TestHookProcessPipelineCase3(t *testing.T) {
}
func TestHookProcessPipelineCase4(t *testing.T) {
w, restore := injectLog()
defer restore()
w := logtest.NewCollector(t)
ctx := context.WithValue(context.Background(), startTimeKey, "foo")
assert.Nil(t, durationHook.AfterProcessPipeline(ctx, []red.Cmder{
@@ -169,8 +165,7 @@ func TestHookProcessPipelineCase5(t *testing.T) {
}
func TestLogDuration(t *testing.T) {
w, restore := injectLog()
defer restore()
w := logtest.NewCollector(t)
logDuration(context.Background(), []red.Cmder{
red.NewCmd(context.Background(), "get", "foo"),
@@ -183,15 +178,3 @@ func TestLogDuration(t *testing.T) {
}, 1*time.Second)
assert.True(t, strings.Contains(w.String(), `get foo\nset bar 0`))
}
func injectLog() (r *strings.Builder, restore func()) {
var buf strings.Builder
w := logx.NewWriter(&buf)
o := logx.Reset()
logx.SetWriter(w)
return &buf, func() {
logx.Reset()
logx.SetWriter(o)
}
}