javascript-testing-patterns
Maîtriser les modèles de test JavaScript
Également disponible depuis: wshobson
Écrire des tests est difficile. Cette compétence fournit des modèles éprouvés et des exemples pour les tests unitaires, d'intégration et de bout en bout utilisant Jest, Vitest et Testing Library afin que vous puissiez créer rapidement des suites de tests fiables.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "javascript-testing-patterns". Write unit tests for an add function that takes two numbers and returns their sum
Résultat attendu:
- ```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);
- });
- });
- ```
Utilisation de "javascript-testing-patterns". Create a test for a user form component that validates email and submits data
Résultat attendu:
- ```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'
- });
- });
- });
- ```
Audit de sécurité
SûrAll 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.
Score de qualité
Ce que vous pouvez construire
Configuration de test pour un nouveau projet
Les développeurs qui démarrent un nouveau projet JavaScript/TypeScript et qui doivent établir l'infrastructure de testfrom scratch avec une configuration de framework appropriée, une structure de répertoire et une intégration CI/CD.
Ajouter des tests à une base de code existante
Les équipes maintenant des applications legacy ou non testées qui ont besoin d'introduire progressivement des tests pour les fonctions, les API et les composants existants sans casser les fonctionnalités existantes.
Améliorer la couverture de tests
Les développeurs cherchant à augmenter la couverture de code et améliorer la qualité des tests en apprenant des modèles de simulation avancés, des fabriques de fixtures et des stratégies de test d'intégration.
Essayez ces prompts
Écrire des tests unitaires pour une fonction qui [décrire ce que fait la fonction]. Inclure des tests pour les cas de succès et la gestion des erreurs.
Créer des tests React Testing Library pour un composant qui [décrire le comportement du composant]. Tester les interactions utilisateur, les soumissions de formulaires et les états d'erreur.
Écrire des tests d'intégration pour un endpoint d'API REST qui [décrire la fonctionnalité de l'endpoint]. Inclure la configuration de la base de données, l'authentification et le nettoyage en utilisant supertest.
Créer des tests pour [service/classe] qui simulent les dépendances externes, y compris [liste des dépendances]. Utiliser l'injection de dépendances et les modèles vi.mock.
Bonnes pratiques
- Suivre le modèle Arrange-Act-Assert (AAA) dans chaque test pour une structure claire et une lisibilité
- Tester les comportements et les interactions utilisateur plutôt que les détails d'implémentation pour rendre les tests résilients au refactoring
- Utiliser les hooks beforeEach et afterEach pour la configuration et le nettoyage afin de garder les tests isolés et éviter la pollution
Éviter
- Tester les détails d'implémentation comme les appels de fonctions internes ou l'état du composant au lieu du comportement observable
- Écrire des tests fragiles qui cassent quand le code est refactorisé mais que le comportement reste inchangé
- Créer des configurations de test trop complexes avec trop de simulations qui rendent les tests difficiles à comprendre et maintenir
Foire aux questions
Dois-je utiliser Jest ou Vitest ?
Comment tester du code qui utilise des API externes ?
Quelle couverture de tests dois-je viser ?
Dois-je tester les méthodes privées ?
Comment gérer les tests de base de données ?
Quelle est la différence entre les tests unitaires et d'intégration ?
Détails du développeur
Auteur
sickn33Licence
MIT
Dépôt
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/javascript-testing-patternsRéf
main
Structure de fichiers