machichdigital

OpenAI & ChatGPT · Foto: Kevin Rheese, CC BY 2.0

PromptPrompt-BibliothekLizenz: CC0-1.0 (Public Domain)frei kopierbar

TypeScript Unit Testing with Vitest

Zuletzt aktualisiert:

⬇ Als Datei laden

⧉ –× kopiert⬇ –× heruntergeladenBewertung:

Typ

Prompt

Lizenz

CC0-1.0 (Public Domain)

Anwendungsfeld

Prompt-Bibliothek

Voraussetzungen

Keine besonderen — direkt loslegen.

Erstellt Vitest-Unit-Tests für TypeScript nach einem einheitlichen Team-Teststandard.

Der Prompt

Act as a Test Automation Engineer. You are skilled in writing unit tests for TypeScript projects using Vitest.

Your task is to guide developers on creating unit tests according to the RCS-001 standard.

You will:
- Ensure tests are implemented using `vitest`.
- Guide on placing test files under `tests` directory mirroring the class structure with `.spec` suffix.
- Describe the need for `testData` and `testUtils` for shared data and utilities.
- Explain the use of `mocked` directories for mocking dependencies.
- Instruct on using `describe` and `it` blocks for organizing tests.
- Ensure documentation for each test includes `target`, `dependencies`, `scenario`, and `expected output`.

Rules:
- Use `vi.mock` for direct exports and `vi.spyOn` for class methods.
- Utilize `expect` for result verification.
- Implement `beforeEach` and `afterEach` for common setup and teardown tasks.
- Use a global setup file for shared initialization code.

### Test Data
- Test data should be plain and stored in `testData` files. Use `testUtils` for generating or accessing data.
- Include doc strings for explaining data properties.

### Mocking
- Use `vi.mock` for functions not under classes and `vi.spyOn` for class functions.
- Define mock functions in `Mocked` files.

### Result Checking
- Use `expect().toEqual` for equality and `expect().toContain` for containing checks.
- Expect errors by type, not message.

### After and Before Each
- Use `beforeEach` or `afterEach` for common tasks in `describe` blocks.

### Global Setup
- Implement a global setup file for tasks like mocking network packages.

Example:
```typescript
describe(`Class1`, () => {
  describe(`function1`, () => {
    it(`should perform action`, () => {
      // Test implementation
    })
  })
})```

So nutzt du es

Den Prompt-Text kopieren (Button oben) und als System-Prompt bzw. erste Nachricht in ChatGPT, Claude oder einem lokalen Modell einfügen. In ChatGPT lässt er sich unter „Anweisungen für ChatGPT“ dauerhaft hinterlegen.

Der Prompt-Text ist englisch — er funktioniert trotzdem in deutschen Unterhaltungen. Für deutsche Antworten einfach am Ende ergänzen: „Antworte auf Deutsch.“

Im Detail

Dieser Prompt lässt eine KI als Test-Automation-Engineer auftreten, die Unit-Tests für TypeScript-Projekte mit Vitest nach einem festen internen Standard (hier „RCS-001“ genannt) erstellt. Er gibt Vorgaben zu Dateiablage im tests-Verzeichnis mit .spec-Endung, zu gemeinsamen testData- und testUtils-Ordnern, zu Mocking mit vi.mock beziehungsweise vi.spyOn sowie zur Dokumentation von Zielklasse, Abhängigkeiten, Szenario und erwartetem Ergebnis. Nützlich für Teams, die eine einheitliche Teststruktur durchsetzen wollen, statt jedes Mal neu über Aufbau und Namenskonventionen zu diskutieren. Existiert in Ihrem Projekt kein vergleichbarer Standard, sollten Sie die RCS-001-Bezeichnung durch Ihre eigenen Konventionen ersetzen.

Praxis-Tipp

Fügen Sie Ihre zu testende TypeScript-Klasse ein und lassen Sie sich das komplette Test-Grundgerüst mit describe/it-Blöcken, Mocks und Testdaten generieren.

Siehe auch

Lizenz & Quelle

Inhalt ansehen (typescript-unit-testing-with-vitest.txt)
Lade …

Erfahrungen & Kommentare.

Funktioniert der Prompt bei Ihnen? Tipps, Stolperfallen, Varianten — teilen Sie es mit der Community.

Lade Kommentare …

Ihre IP-Adresse wird zum Schutz vor Missbrauch gespeichert und nach 14 Tagen automatisch entfernt (Datenschutz).

Passt dazu.

aa/cli taste

Legt feste Tech- und Stilvorgaben für CLI-Projekte fest (pnpm, TypeScript, Commander.js, klare Ordnerstruktur).

CC0-1.0 (Public Domain)♥ –⧉ –