golang-testing
Effektive Go-Tests schreiben
También disponible en: Joseph OBrien
Das Schreiben von Tests in Go kann ohne Anleitung zu Mustern und Best Practices eine Herausforderung sein. Diese Fähigkeit bietet umfassende Beispiele für table-driven Tests, Mocking, Integrationstests mit Containern und Performance-Benchmarks.
Descargar el ZIP de la skill
Subir en Claude
Ve a Configuración → Capacidades → Skills → Subir skill
Activa y empieza a usar
Pruébalo
Usando "golang-testing". Wie schreibe ich Tests für eine Funktion, die zwei Zahlen addiert?
Resultado esperado:
- Table-driven Tests mit t.Run für jeden Fall verwenden
- Positive Zahlen, negative Zahlen, gemischte Vorzeichen und Nullen testen
- t.Errorf verwenden, um Fehler mit erwarteten vs. tatsächlichen Werten zu melden
- Zusammenhängende Tests in einem Slice von Testfällen für Wartbarkeit gruppieren
Usando "golang-testing". Wie kann ich meinen HTTP-Handler testen, ohne einen echten Server zu starten?
Resultado esperado:
- httptest.NewRequest verwenden, um mock HTTP-Anfragen zu erstellen
- httptest.NewRecorder verwenden, um Handler-Antworten zu erfassen
- Response-Statuscode und Body-Inhalt prüfen
- Sowohl Erfolgs- als auch Fehlerszenarien testen
Auditoría de seguridad
SeguroThis is a markdown-only documentation skill containing informational guidance about Go testing patterns. No executable code, scripts, or file system operations exist. All 55 static findings are false positives caused by the static analyzer misidentifying markdown documentation and Go code examples as executable security threats.
Factores de riesgo
🌐 Acceso a red (1)
⚡ Contiene scripts (2)
⚙️ Comandos externos (31)
Puntuación de calidad
Lo que puedes crear
Testmuster lernen
Table-driven Tests, Mocking und Testorganisation für produktiven Go-Code meistern.
Integrationstests
Integrationstests mit Test-Containern für Datenbanken und externe Dienste einrichten.
Code benchmarken
Benchmarks schreiben und ausführen, um leistungskritische Codeabschnitte zu messen und zu optimieren.
Prueba estos prompts
Zeige mir, wie ich einen table-driven Test in Go für eine Funktion namens Divide schreibe, die zwei Integer nimmt und den Quotienten und einen Fehler zurückgibt.
Wie erstelle ich ein Mock für ein UserRepository-Interface, um meinen UserService ohne echte Datenbank zu testen?
Schreibe einen Integrationstest mit testcontainers, um mein Repository gegen eine echte PostgreSQL-Datenbank zu testen.
Zeige mir, wie ich einen Go-Benchmark für eine Sortierfunktion mit verschiedenen Eingabegrößen schreibe.
Mejores prácticas
- Verhalten testen, nicht Implementierung. Auf Ein- und Ausgaben konzentrieren, nicht auf interne Details.
- t.Helper() verwenden, um Hilfsfunktionen für klarere Fehlermeldungen in der Testausgabe zu markieren.
- Unabhängige Tests parallel mit t.Parallel() ausführen, um die Testsuite-Ausführung zu beschleunigen.
Evitar
- Einen Test mit vielen Behauptungen vermeiden. In fokussierte Testfälle für besseres Debugging aufteilen.
- t.Cleanup() für Ressourcenmanagement nicht übersehen. Immer Cleanup in Tests deferren.
- Testdaten nicht hardcoden. Stattdessen Test-Fixtures oder Factories für Wartbarkeit verwenden.
Preguntas frecuentes
Welche Go-Versionen werden unterstützt?
Welche maximale Testkomplexität wird unterstützt?
Wie integriere ich mich in bestehende Test-Frameworks?
Ändert diese Fähigkeit meine Projektdateien?
Warum schlagen meine Tests fehl?
Wie unterscheidet sich dies vom Go-integrierten Testing?
Detalles del desarrollador
Estructura de archivos
📄 SKILL.md