71 lines
1.9 KiB
Go
71 lines
1.9 KiB
Go
|
|
package config
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"testing"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// TestGetConfig_NotInitialized 测试未初始化时获取配置
|
|||
|
|
func TestGetConfig_NotInitialized(t *testing.T) {
|
|||
|
|
// 重置全局变量(在实际测试中可能需要更复杂的重置逻辑)
|
|||
|
|
// 注意:由于使用了 sync.Once,这个测试主要验证错误处理逻辑
|
|||
|
|
|
|||
|
|
// 测试未初始化时的错误消息
|
|||
|
|
_, err := GetConfig()
|
|||
|
|
if err == nil {
|
|||
|
|
t.Error("未初始化时应该返回错误")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
expectedError := "配置未初始化,请先调用 config.Init()"
|
|||
|
|
if err.Error() != expectedError {
|
|||
|
|
t.Errorf("错误消息 = %q, want %q", err.Error(), expectedError)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// TestMustGetConfig_Panic 测试MustGetConfig在未初始化时panic
|
|||
|
|
func TestMustGetConfig_Panic(t *testing.T) {
|
|||
|
|
// 注意:这个测试会触发panic,需要recover
|
|||
|
|
defer func() {
|
|||
|
|
if r := recover(); r == nil {
|
|||
|
|
t.Error("MustGetConfig 应该在未初始化时panic")
|
|||
|
|
}
|
|||
|
|
}()
|
|||
|
|
|
|||
|
|
// 尝试获取未初始化的配置
|
|||
|
|
_ = MustGetConfig()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// TestGetRustFSConfig_NotInitialized 测试未初始化时获取RustFS配置
|
|||
|
|
func TestGetRustFSConfig_NotInitialized(t *testing.T) {
|
|||
|
|
_, err := GetRustFSConfig()
|
|||
|
|
if err == nil {
|
|||
|
|
t.Error("未初始化时应该返回错误")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
expectedError := "配置未初始化,请先调用 config.Init()"
|
|||
|
|
if err.Error() != expectedError {
|
|||
|
|
t.Errorf("错误消息 = %q, want %q", err.Error(), expectedError)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// TestMustGetRustFSConfig_Panic 测试MustGetRustFSConfig在未初始化时panic
|
|||
|
|
func TestMustGetRustFSConfig_Panic(t *testing.T) {
|
|||
|
|
defer func() {
|
|||
|
|
if r := recover(); r == nil {
|
|||
|
|
t.Error("MustGetRustFSConfig 应该在未初始化时panic")
|
|||
|
|
}
|
|||
|
|
}()
|
|||
|
|
|
|||
|
|
_ = MustGetRustFSConfig()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// TestInit_Once 测试Init只执行一次的逻辑
|
|||
|
|
func TestInit_Once(t *testing.T) {
|
|||
|
|
// 注意:由于sync.Once的特性,这个测试主要验证逻辑
|
|||
|
|
// 实际测试中可能需要重置机制
|
|||
|
|
|
|||
|
|
// 验证Init函数可调用(函数不能直接比较nil)
|
|||
|
|
// 这里只验证函数存在
|
|||
|
|
_ = Init
|
|||
|
|
}
|
|||
|
|
|