54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
|
|
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)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|