diff --git a/internal/server/server_test.go b/internal/server/server_test.go new file mode 100644 index 0000000..4cd3019 --- /dev/null +++ b/internal/server/server_test.go @@ -0,0 +1,39 @@ +package server + +import ( + "testing" + + "github.com/gin-gonic/gin" + "github.com/stretchr/testify/assert" +) + +// TestResolveGinMode 测试 Gin 模式解析 +func TestResolveGinMode(t *testing.T) { + tests := []struct { + name string + mode string + expected string + }{ + {"debug", "debug", gin.DebugMode}, + {"test", "test", gin.TestMode}, + {"release", "release", gin.ReleaseMode}, + {"empty", "", gin.ReleaseMode}, + {"invalid", "invalid", gin.ReleaseMode}, + {"other", "other", gin.ReleaseMode}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := resolveGinMode(tt.mode) + assert.Equal(t, tt.expected, got) + }) + } +} + +// TestResolveGinMode_CaseSensitivity 测试大小写敏感性 +func TestResolveGinMode_CaseSensitivity(t *testing.T) { + // 函数是区分大小写的 + assert.Equal(t, gin.DebugMode, resolveGinMode("debug")) + assert.Equal(t, gin.ReleaseMode, resolveGinMode("DEBUG")) // 大写不匹配 + assert.Equal(t, gin.ReleaseMode, resolveGinMode("Debug")) // 首字母大写不匹配 +}