qrcode_test.go 962 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "strings"
  4. "testing"
  5. )
  6. // 验证二维码生成:返回 data URI,PNG 可解码
  7. func TestGenerateQRCode(t *testing.T) {
  8. uri, err := GenerateQRCode("https://example.com", 0)
  9. if err != nil {
  10. t.Fatalf("生成失败: %v", err)
  11. }
  12. if !strings.HasPrefix(uri, "data:image/png;base64,") {
  13. t.Fatalf("应返回 data URI,得到前缀: %v", uri[:30])
  14. }
  15. if len(uri) < 100 {
  16. t.Fatalf("data URI 过短: %d", len(uri))
  17. }
  18. }
  19. // 验证空输入与超长输入
  20. func TestGenerateQRCodeInvalid(t *testing.T) {
  21. if _, err := GenerateQRCode("", 0); err == nil {
  22. t.Fatal("空输入应报错")
  23. }
  24. if _, err := GenerateQRCode(strings.Repeat("a", 1001), 0); err == nil {
  25. t.Fatal("超长输入应报错")
  26. }
  27. }
  28. // 验证不同尺寸
  29. func TestGenerateQRCodeSize(t *testing.T) {
  30. for _, size := range []int{0, 128, 300, 1024} {
  31. if _, err := GenerateQRCode("test", size); err != nil {
  32. t.Fatalf("size=%d 生成失败: %v", size, err)
  33. }
  34. }
  35. }