package redis import ( "carrotskin/pkg/config" "testing" "go.uber.org/zap/zaptest" ) // TestGetClient_NotInitialized 测试未初始化时获取Redis客户端 func TestGetClient_NotInitialized(t *testing.T) { _, err := GetClient() if err == nil { t.Error("未初始化时应该返回错误") } expectedError := "Redis客户端未初始化,请先调用 redis.Init()" if err.Error() != expectedError { t.Errorf("错误消息 = %q, want %q", err.Error(), expectedError) } } // TestMustGetClient_Panic 测试MustGetClient在未初始化时panic func TestMustGetClient_Panic(t *testing.T) { defer func() { if r := recover(); r == nil { t.Error("MustGetClient 应该在未初始化时panic") } }() _ = MustGetClient() } // TestInit_Redis 测试Redis初始化逻辑 func TestInit_Redis(t *testing.T) { cfg := config.RedisConfig{ Host: "localhost", Port: 6379, Password: "", Database: 0, PoolSize: 10, } logger := zaptest.NewLogger(t) // 验证Init函数存在且可调用 // 注意:实际连接可能失败,这是可以接受的 err := Init(cfg, logger) if err != nil { t.Logf("Init() 返回错误(可能正常,如果Redis未运行): %v", err) } }