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)
|
||
}
|
||
}
|
||
|