JavaScript-Funktionen mit KI testen: Eine GPT-4-Anwendung
Als Entwickler kennen Sie wahrscheinlich die Bedeutung von Tests. Tests für Ihre Funktionen zu schreiben ist ein wesentlicher Bestandteil, um sicherzustellen, dass Ihr Code wie erwartet funktioniert. Aber wäre es nicht schön, wenn eine KI Ihnen dabei helfen könnte? Hier kommt das GPT-4-Modell von OpenAI ins Spiel.
Einführung in GPT-4
GPT-4 (Generative Pretrained Transformer 4) ist die neueste Version von OpenAIs großem Sprachmodell. Es wurde auf einer breiten Palette von Internettexten trainiert, aber das Besondere daran ist, dass es Sprache nicht nur versteht - es kann auch Inhalte in einem konversationellen Stil generieren. Diese Eigenschaft macht es perfekt für eine Vielzahl von Anwendungsfällen, einer davon ist die Unterstützung von Entwicklern beim Schreiben von Tests für ihren Code.
Der Fall der Util-Klasse
Betrachten Sie die folgende JavaScript Util-Klasse. Sie enthält eine einzelne statische Methode createWebSafeSentence, die einen web-sicheren Satz erzeugt, indem der Eingabesatz in einen klein geschriebenen, durch Bindestriche getrennten String umgewandelt wird, wobei nicht-alphanumerische Zeichen ausgeschlossen und die Länge auf eine bestimmte Maximallänge beschränkt wird.
export class Util {
static createWebSafeSentence(sentence: string, maxLength: number): string {
let slug = sentence.toLowerCase();
slug = slug.replace(/\s+/g, '-');
slug = slug.replace(/[^a-z0-9-]/g, '');
slug = slug.substring(0, maxLength);
slug = slug.replace(/-+$/, '');
return slug;
}
}
Tests mit GPT-4 schreiben
Das Testen dieser Funktion würde eine Reihe von Aufgaben umfassen, darunter Konvertierung in Kleinbuchstaben, Ersetzen von Leerzeichen durch Bindestriche, Entfernen nicht-alphanumerischer Zeichen, Begrenzen des Strings auf eine bestimmte Länge und Entfernen abschließender Bindestriche. Wie wäre es, wenn wir GPT-4 bitten, diese Tests für uns zu generieren?
Hier ist der Prompt, den ich verwendet habe:
“Can you create a test based on Jasmine (and mocks if needed) for the following class: {provided Util class}”
Und hier ist, was GPT-4 produziert hat:
import { Util } from './util.js';
describe('Util', function() {
describe('createWebSafeSentence', function() {
it('converts to lowercase', function() {
const result = Util.createWebSafeSentence('Test Sentence', 100);
expect(result).toEqual('test-sentence');
});
it('replaces spaces with hyphens', function() {
const result = Util.createWebSafeSentence('This is a sentence', 100);
expect(result).toEqual('this-is-a-sentence');
});
it('removes non-alphanumeric and non-hyphen characters', function() {
const result = Util.createWebSafeSentence('Hello, World!', 100);
expect(result).toEqual('hello-world');
});
it('shortens to desired length', function() {
const result = Util.createWebSafeSentence('This is a very very long sentence', 10);
expect(result).toEqual('this-is-a-');
});
it('removes trailing hyphens', function() {
const result = Util.createWebSafeSentence('Hello-', 100);
expect(result).toEqual('hello');
});
it('handles empty string', function() {
const result = Util.createWebSafeSentence('', 100);
expect(result).toEqual('');
});
});
});
OmgOmgOmg
Es hat mich nur wenige Sekunden gekostet, den Test automatisch zu generieren. Es hätte mich mit Sicherheit viiiel länger gekostet, alles selbst zu schreiben. Es ist eine Superkraft, die mich so viel produktiver macht. Es ist ein echter Game-Changer.
Fazit
Wie Sie sehen können, können die generativen Fähigkeiten von GPT-4 den Prozess des Schreibens von Tests für Ihre JavaScript-Funktionen erheblich beschleunigen. Es versteht nicht nur die Struktur und Syntax Ihres Codes, sondern auch die zugrunde liegenden Absichten und die Logik. Dies ermöglicht es, nützliche Testfälle zu generieren, an die Sie möglicherweise nicht gedacht hätten.
Die Anwendungen von GPT-4 im Bereich der Softwareentwicklung gehen über das Testen hinaus. Seine konversationelle Natur ermöglicht es, detaillierte Erklärungen für komplexe Code-Abschnitte zu generieren, beim Debugging zu unterstützen und sogar beim Schreiben neuer Features zu helfen. Es ist eine aufregende Zeit, Entwickler zu sein!
Überraschung: Dieser gesamte Beitrag wurde von GPT-4 geschrieben!
Ja, Sie haben richtig gelesen. Der gesamte Beitrag, den Sie gerade gelesen haben, von der Einleitung bis zum Fazit, wurde von OpenAIs GPT-4-Modell generiert. Und das ist nicht einfach ein zufälliger Text; es ist ein kontextuell bewusster, thematisch relevanter und kohärenter Blogbeitrag, der eine spezifische Anfrage erfüllt: zu zeigen, wie GPT-4 verwendet werden kann, um Tests für JavaScript-Code zu generieren.
Welcher Prompt wurde also verwendet, um diesen Blogbeitrag zu generieren? Es war:
“Can you create a blogpost from our interaction? Markdown and with some nice headlines + summary and conclusion. The article should highlight how useful the GPT4 model is to generate tests for existing code.”
Nach dieser Anweisung war GPT-4 in der Lage, den Inhalt zu strukturieren, Tests zu generieren und alles zu einer zusammenhängenden Geschichte zu verweben, die nicht nur wertvolle Einblicke liefert, sondern auch seine Fähigkeiten demonstriert.
Dies zeigt die Leistungsfähigkeit von GPT-4. Es kann nicht nur Testcode generieren, Fragen beantworten und komplexe Themen erklären, sondern auch bedeutungsvolle Inhalte wie diesen Blogbeitrag erstellen. Es ist fast so, als würden wir uns mit einem Menschen unterhalten - einem Menschen, der wirklich gut darin ist, Code zu schreiben, Konzepte zu erklären und ansprechende Inhalte zu erstellen!
Wenn wir in die Zukunft blicken, sind die potenziellen Anwendungen von KI-Modellen wie GPT-4 in der Welt der Softwareentwicklung und darüber hinaus atemberaubend. Vom Schreiben von Tests und Debugging von Code bis hin zur Generierung von Dokumentation und Erstellung von Blogbeiträgen - KI verändert die Art, wie wir arbeiten und kreativ sind. Es ist eine aufregende Zeit in der Technologie!
Mehr
- Tolles Foto oben von Nguyen Dang Hoang Nhu
