Tests zu schreiben ist schwer. Diese Fähigkeit bietet bewährte Muster und Beispiele für Unit-, Integrations- und End-to-End-Testing mit Jest, Vitest und Testing Library, damit Sie schnell zuverlässige Test-Suiten aufbauen können.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "javascript-testing-patterns". Write unit tests for an add function that takes two numbers and returns their sum
Erwartetes Ergebnis:
- ```typescript
- import { describe, it, expect } from 'vitest';
- import { add } from './calculator';
- describe('add', () => {
- it('should add two positive numbers', () => {
- expect(add(2, 3)).toBe(5);
- });
- it('should add negative numbers', () => {
- expect(add(-2, -3)).toBe(-5);
- });
- it('should handle zero', () => {
- expect(add(0, 5)).toBe(5);
- });
- });
- ```
Verwendung von "javascript-testing-patterns". Create a test for a user form component that validates email and submits data
Erwartetes Ergebnis:
- ```typescript
- import { render, screen, fireEvent } from '@testing-library/react';
- import { describe, it, expect, vi } from 'vitest';
- import { UserForm } from './UserForm';
- describe('UserForm', () => {
- it('should show validation error for invalid email', () => {
- render(<UserForm onSubmit={vi.fn()} />);
- fireEvent.change(screen.getByTestId('email-input'), {
- target: { value: 'invalid-email' }
- });
- fireEvent.click(screen.getByRole('button', { name: 'Submit' }));
- expect(screen.getByText('Invalid email')).toBeInTheDocument();
- });
- it('should call onSubmit with form data', () => {
- const onSubmit = vi.fn();
- render(<UserForm onSubmit={onSubmit} />);
- fireEvent.change(screen.getByTestId('name-input'), {
- target: { value: 'John Doe' }
- });
- fireEvent.change(screen.getByTestId('email-input'), {
- target: { value: 'john@example.com' }
- });
- fireEvent.click(screen.getByRole('button', { name: 'Submit' }));
- expect(onSubmit).toHaveBeenCalledWith({
- name: 'John Doe',
- email: 'john@example.com'
- });
- });
- });
- ```
Sicherheitsaudit
SicherAll 145 static findings are false positives. The detected patterns exist only in code examples within markdown documentation files, not in executable code. The skill provides educational content about testing patterns with code samples demonstrating legitimate testing practices including mock setup, API testing, email service testing, and database integration testing. No executable code, no security risks.
Qualitätsbewertung
Was du bauen kannst
Neues Projekt Test-Setup
Entwickler, die ein neues JavaScript/TypeScript-Projekt starten und eine Test-Infrastruktur von Grund auf mit korrekter Framework-Konfiguration, Verzeichnisstruktur und CI/CD-Integration aufbauen müssen.
Tests zum bestehenden Codebase hinzufügen
Teams, die Legacy- oder ungetestete Anwendungen pflegen und schrittweise Tests für bestehende Funktionen, APIs und Komponenten einführen müssen, ohne die bestehende Funktionalität zu brechen.
Test-Coverage verbessern
Entwickler, die die Code-Coverage verbessern und die Testqualität durch das Erlernen fortgeschrittener Mocking-Muster, Fixture-Factories und Integrationstesting-Strategien erhöhen möchten.
Probiere diese Prompts
Schreiben Sie Unit-Tests für eine Funktion, die [beschreiben Sie, was die Funktion macht]. Fügen Sie Tests für Erfolgsfälle und Fehlerbehandlung hinzu.
Erstellen Sie React Testing Library-Tests für eine Komponente, die [beschreiben Sie das Komponentenverhalten]. Testen Sie Benutzerinteraktionen, Formularübermittlungen und Fehlerzustände.
Schreiben Sie Integrationstests für einen REST-API-Endpunkt, der [beschreiben Sie die Endpunktfunktionalität]. Fügen Sie Datenbank-Setup, Authentifizierung und Bereinigung mit supertest hinzu.
Erstellen Sie Tests für [Service/Klasse], die externe Abhängigkeiten mocken, einschließlich [Abhängigkeiten auflisten]. Verwenden Sie Dependency Injection und vi.mock-Muster.
Bewährte Verfahren
- Befolgen Sie das Arrange-Act-Assert (AAA)-Muster in jedem Test für klare Struktur und Lesbarkeit
- Testen Sie Verhalten und Benutzerinteraktionen anstatt Implementierungsdetails, um Tests widerstandsfähig gegen Refactoring zu machen
- Verwenden Sie beforeEach- und afterEach-Hooks für Setup und Bereinigung, um Tests isoliert zu halten und Verschmutzung zu verhindern
Vermeiden
- Testen von Implementierungsdetails wie internen Funktionsaufrufen oder Komponentenzuständen anstatt beobachtbarem Verhalten
- Schreiben von spröden Tests, die brechen, wenn Code refaktoriert wird, aber das Verhalten gleich bleibt
- Erstellen von übermäßig komplexen Test-Setups mit zu vielen Mocks, die Tests schwer verständlich und wartbar machen
Häufig gestellte Fragen
Sollte ich Jest oder Vitest verwenden?
Wie teste ich Code, der externe APIs verwendet?
Welche Test-Coverage sollte ich anstreben?
Sollte ich private Methoden testen?
Wie handhabe ich Datenbank-Tests?
Was ist der Unterschied zwischen Unit- und Integrationstests?
Entwicklerdetails
Autor
sickn33Lizenz
MIT
Repository
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/javascript-testing-patternsRef
main
Dateistruktur