Unit-Tests aus Code generieren
Diese Funktion liest eine Funktion oder Klasse und erzeugt dazu passende Unit-Tests, einschließlich Testfällen für typische Eingaben, Grenzwerte und erwartete Fehler. Gedacht für Entwicklerinnen und Entwickler, die eine Testabdeckung aufbauen oder nachziehen möchten, ohne jeden Testfall einzeln von Hand zu entwerfen.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Von der Funktion zum Testfall
Sie fügen eine Funktion oder Klasse ein; die Funktion erzeugt dazu Testfälle für typische Eingaben, bekannte Grenzwerte wie leere Listen oder Nullwerte, sowie Fälle, die absichtlich einen Fehler auslösen sollen. Unterstützt werden gängige Test-Frameworks: pytest und unittest für Python, Jest für JavaScript und TypeScript, PHPUnit für PHP. Bei Bedarf lässt sich das bevorzugte Framework vorab festlegen, sodass die erzeugten Tests direkt in der vorhandenen Testsuite laufen, ohne die Syntax nachträglich anzupassen.
Testabdeckung statt Testtheater
Die erzeugten Tests prüfen tatsächliches Verhalten – Rückgabewerte, geworfene Fehler, Nebenwirkungen bei übergebenen Objekten – statt nur formal zu bestehen, ohne etwas zu prüfen. Trotzdem ersetzen sie keine durchdachte Teststrategie: Fachlich wichtige Randfälle, die aus der reinen Signatur der Funktion nicht ersichtlich sind, sollten weiterhin von einer Entwicklerin oder einem Entwickler ergänzt werden. Ein Test, der nur prüft, dass eine Funktion aufgerufen werden kann, ohne das Ergebnis zu bewerten, gilt hier bewusst nicht als ausreichend.
Aktueller Stand: Beta
Diese Funktion befindet sich in der Beta-Phase: Bei klar abgegrenzten, reinen Funktionen ist die Testabdeckung zuverlässig, bei Funktionen mit vielen externen Abhängigkeiten wie Datenbank- oder Netzwerkzugriffen kann die KI die passenden Mocks nicht immer korrekt vorschlagen. Die erzeugten Tests sollten vor dem Commit ausgeführt und bei Bedarf angepasst werden. KIT weist den Beta-Status offen aus, statt eine Testabdeckung zu versprechen, die bei jeder Art von Funktion gleichermaßen zuverlässig ist.
Preis und Nutzung über die API
Die Testerzeugung kostet $0.003 pro Anfrage plus $0.0135 pro 1.000 erzeugten Wörtern Testcode. Über die API lässt sich die Funktion in eine CI-Pipeline einbinden, die bei jeder neuen Funktion automatisch einen ersten Testentwurf vorschlägt, den das Team vor der Aufnahme in die Test-Suite prüft. Für eine einzelne, überschaubare Funktion liegt der Betrag meist im niedrigen einstelligen Cent-Bereich, abhängig von der Anzahl der erzeugten Testfälle.
Anwendungsfälle
Testabdeckung für eine alte Funktion nachziehen
Katrin Baumann findet in einem älteren Modul eine zentrale Funktion ohne einen einzigen Test und lässt sich eine erste Reihe von Testfällen erzeugen, bevor sie die Funktion überarbeitet.
Erste Tests direkt beim Schreiben neuer Funktionen
Ein Entwickler bei der Schneider IT-Systeme GmbH & Co. KG lässt sich zu jeder neu geschriebenen Funktion sofort passende Tests vorschlagen und spart sich dadurch den ersten, oft mühsamen Entwurf.
Grenzwerte, die leicht übersehen werden
Thomas Müller prüft mit den erzeugten Testfällen gezielt Grenzwerte wie leere Eingaben oder sehr große Zahlen, die er beim manuellen Testen der eigenen Funktion zunächst nicht bedacht hatte.
Häufige Fragen
Wird mein Code gespeichert?
Nein. Der eingereichte Code wird nur zur Erstellung der Tests verwendet und danach nicht gespeichert.
Welche Test-Frameworks werden unterstützt?
pytest und unittest für Python, Jest für JavaScript und TypeScript sowie PHPUnit für PHP.
Was bedeutet der Beta-Status genau?
Bei reinen Funktionen ohne externe Abhängigkeiten ist die Testabdeckung zuverlässig; bei Funktionen mit Datenbank- oder Netzwerkzugriff sollten die vorgeschlagenen Mocks vor dem Commit geprüft werden.
Ersetzen die erzeugten Tests eine eigene Teststrategie?
Nein. Fachlich wichtige Randfälle sollten weiterhin ergänzt werden; die Funktion liefert einen soliden Ausgangspunkt, keine vollständige Abdeckung.
Was kostet die Testerzeugung?
$0.003 pro Anfrage plus $0.0135 pro 1.000 erzeugten Wörtern Testcode.
Brauche ich ein Konto?
Nein. Es gibt derzeit keine Konten – Sie zahlen pro Anfrage, direkt über PayPal.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/unit-tests \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/unit-tests", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/unit-tests",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/unit-tests", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/unit-tests", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.unit_tests",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |