- NewTimingWheelService 改为返回 error,避免 panic - ProvideTimingWheelService 透传 error 并更新 wire 生成代码 - 补充定时任务调度/取消/周期任务相关单元测试
38 lines
832 B
Go
38 lines
832 B
Go
package service
|
||
|
||
import (
|
||
"errors"
|
||
"testing"
|
||
"time"
|
||
|
||
"github.com/zeromicro/go-zero/core/collection"
|
||
)
|
||
|
||
func TestProvideTimingWheelService_ReturnsError(t *testing.T) {
|
||
original := newTimingWheel
|
||
t.Cleanup(func() { newTimingWheel = original })
|
||
|
||
newTimingWheel = func(_ time.Duration, _ int, _ collection.Execute) (*collection.TimingWheel, error) {
|
||
return nil, errors.New("boom")
|
||
}
|
||
|
||
svc, err := ProvideTimingWheelService()
|
||
if err == nil {
|
||
t.Fatalf("期望返回 error,但得到 nil")
|
||
}
|
||
if svc != nil {
|
||
t.Fatalf("期望返回 nil svc,但得到非空")
|
||
}
|
||
}
|
||
|
||
func TestProvideTimingWheelService_Success(t *testing.T) {
|
||
svc, err := ProvideTimingWheelService()
|
||
if err != nil {
|
||
t.Fatalf("期望 err 为 nil,但得到: %v", err)
|
||
}
|
||
if svc == nil {
|
||
t.Fatalf("期望 svc 非空,但得到 nil")
|
||
}
|
||
svc.Stop()
|
||
}
|