package handler import ( "net/http/httptest" "testing" ) func TestIntQueryClampsAndFallsBack(t *testing.T) { cases := []struct { q string want int }{ {"", 40}, // 缺省 {"limit=10", 10}, // 正常 {"limit=0", 1}, // 低于下限 → 夹到下限 {"limit=999", 200}, // 高于上限 → 夹到上限 {"limit=abc", 40}, // 非法 → 回落默认值,而不是让整个请求 400 {"limit=-5", 1}, } for _, c := range cases { r := httptest.NewRequest("GET", "/x?"+c.q, nil) if got := intQuery(r, "limit", 40, 1, 200); got != c.want { t.Fatalf("intQuery(%q) = %d,期望 %d", c.q, got, c.want) } } }