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 }