Files
sub2api-cn-relay-manager/internal/errs/test_helpers.go

29 lines
732 B
Go

package errs
import "testing"
// AssertErrorContains 检查错误是否包含预期子字符串
// 用于替代脆弱的直接字符串匹配
func AssertErrorContains(t *testing.T, err error, wantSubstring string) {
t.Helper()
if err == nil {
t.Fatalf("expected error containing %q, got nil", wantSubstring)
}
if !containsSubstring(err.Error(), wantSubstring) {
t.Fatalf("error = %q, want containing %q", err.Error(), wantSubstring)
}
}
func containsSubstring(s, substr string) bool {
return len(substr) <= len(s) && containsAt(s, substr, 0)
}
func containsAt(s, substr string, start int) bool {
for i := start; i <= len(s)-len(substr); i++ {
if s[i:i+len(substr)] == substr {
return true
}
}
return false
}