package main import ( "strings" "testing" ) // 验证二维码生成:返回 data URI,PNG 可解码 func TestGenerateQRCode(t *testing.T) { uri, err := GenerateQRCode("https://example.com", 0) if err != nil { t.Fatalf("生成失败: %v", err) } if !strings.HasPrefix(uri, "data:image/png;base64,") { t.Fatalf("应返回 data URI,得到前缀: %v", uri[:30]) } if len(uri) < 100 { t.Fatalf("data URI 过短: %d", len(uri)) } } // 验证空输入与超长输入 func TestGenerateQRCodeInvalid(t *testing.T) { if _, err := GenerateQRCode("", 0); err == nil { t.Fatal("空输入应报错") } if _, err := GenerateQRCode(strings.Repeat("a", 1001), 0); err == nil { t.Fatal("超长输入应报错") } } // 验证不同尺寸 func TestGenerateQRCodeSize(t *testing.T) { for _, size := range []int{0, 128, 300, 1024} { if _, err := GenerateQRCode("test", size); err != nil { t.Fatalf("size=%d 生成失败: %v", size, err) } } }