Files
user-system/internal/monitoring/monitoring_test.go

92 lines
2.6 KiB
Go
Raw Normal View History

package monitoring_test
import (
"testing"
"time"
"github.com/user-management-system/internal/monitoring"
)
// TestNewMetrics 测试监控指标初始化
func TestNewMetrics(t *testing.T) {
m := monitoring.NewMetrics()
if m == nil {
t.Fatal("NewMetrics() returned nil")
}
}
// TestMetricsGetCollectors 测试获取 Prometheus 收集器列表不为空
func TestMetricsGetCollectors(t *testing.T) {
m := monitoring.NewMetrics()
collectors := m.GetMetrics()
if len(collectors) == 0 {
t.Error("GetMetrics() should return non-empty collector list")
}
}
// TestIncHTTPRequest 测试HTTP请求计数不 panic
func TestIncHTTPRequest(t *testing.T) {
m := monitoring.NewMetrics()
m.IncHTTPRequest("GET", "/api/v1/users", 200)
m.IncHTTPRequest("POST", "/api/v1/users", 201)
m.IncHTTPRequest("GET", "/api/v1/users", 500)
}
// TestObserveHTTPRequestDuration 测试HTTP请求耗时记录不 panic
func TestObserveHTTPRequestDuration(t *testing.T) {
m := monitoring.NewMetrics()
m.ObserveHTTPRequestDuration("GET", "/api/v1/users", 50*time.Millisecond)
m.ObserveHTTPRequestDuration("POST", "/api/v1/auth/login", 200*time.Millisecond)
}
// TestIncDBQuery 测试数据库查询计数不 panic
func TestIncDBQuery(t *testing.T) {
m := monitoring.NewMetrics()
m.IncDBQuery("SELECT", "users")
m.IncDBQuery("INSERT", "users")
m.IncDBQuery("UPDATE", "users")
m.IncDBQuery("DELETE", "users")
}
// TestObserveDBQueryDuration 测试数据库查询耗时记录不 panic
func TestObserveDBQueryDuration(t *testing.T) {
m := monitoring.NewMetrics()
m.ObserveDBQueryDuration("SELECT", "users", 5*time.Millisecond)
m.ObserveDBQueryDuration("INSERT", "users", 10*time.Millisecond)
}
// TestIncUserRegistration 测试用户注册计数不 panic
func TestIncUserRegistration(t *testing.T) {
m := monitoring.NewMetrics()
m.IncUserRegistration("normal")
m.IncUserRegistration("oauth")
}
// TestIncUserLogin 测试用户登录计数不 panic
func TestIncUserLogin(t *testing.T) {
m := monitoring.NewMetrics()
m.IncUserLogin("password", "success")
m.IncUserLogin("password", "fail")
m.IncUserLogin("oauth", "success")
}
// TestSetActiveUsers 测试活跃用户数设置不 panic
func TestSetActiveUsers(t *testing.T) {
m := monitoring.NewMetrics()
m.SetActiveUsers("daily", 1000)
m.SetActiveUsers("weekly", 5000)
}
// TestSetMemoryUsage 测试内存使用量设置不 panic
func TestSetMemoryUsage(t *testing.T) {
m := monitoring.NewMetrics()
m.SetMemoryUsage(1024 * 1024 * 100) // 100MB
}
// TestSetGoroutines 测试协程数设置不 panic
func TestSetGoroutines(t *testing.T) {
m := monitoring.NewMetrics()
m.SetGoroutines(50)
m.SetGoroutines(100)
}