كتابة الاختبارات أمر صعب. توفر هذه المهارة أنماطاً مثبتة وأمثلة للاختبارات الوحدوية والتكاملية واختبارات end-to-end باستخدام Jest و Vitest و Testing Library حتى تتمكن من بناء مجموعات اختبار موثوقة بسرعة.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“javascript-testing-patterns”。 اكتب اختبارات وحدوية لدالة add التي تأخذ رقمين وتعيد مجموعهما
预期结果:
- ```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);
- });
- });
- ```
正在使用“javascript-testing-patterns”。 أنشئ اختباراً لمكون نموذج مستخدم يتحقق من صحة البريد الإلكتروني ويرسل البيانات
预期结果:
- ```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'
- });
- });
- });
- ```
安全审计
安全All 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.
质量评分
你能构建什么
إعداد اختبار لمشروع جديد
المطورون الذين يبدأون مشروع JavaScript/TypeScript جديد ويحتاجون إلى إنشاء بنية اختبار تحتية من الصفر مع تكوين الإطار المناسب وهيكل المجلدات وتكامل CI/CD.
إضافة اختبارات لـ Codebase موجود
الفرق التي تحافظ على تطبيقات قديمة أو غير مختبرة وتحتاج إلى إدخال الاختبارات تدريجياً للدوال و APIs والمكونات الموجودة دون كسر الوظائف الحالية.
تحسين تغطية الاختبار
المطورون الذين يسعون لزيادة تغطية الكود وتحسين جودة الاختبار من خلال تعلم أنماط mocking المتقدمة و fixture factories واستراتيجيات اختبار التكامل.
试试这些提示
اكتب اختبارات وحدوية لدالة تقوم بـ [وصف ما تفعله الدالة]. ضمّن اختبارات لحالات النجاح والتعامل مع الأخطاء.
أنشئ اختبارات React Testing Library لمكون يقوم بـ [وصف سلوك المكون]. اختبر تفاعلات المستخدم وإرسال النماذج وحالات الأخطاء.
اكتب اختبارات تكاملية لنقطة نهاية REST API تقوم بـ [وصف وظيفة نقطة النهاية]. ضمّن إعداد قاعدة البيانات والمصادقة والتنظيف باستخدام supertest.
أنشئ اختبارات لـ [service/class] تستخدم mock للاعتماديات الخارجية بما في ذلك [سرد الاعتماديات]. استخدم حقن الاعتمادية وأنماط vi.mock.
最佳实践
- اتبع نمط Arrange-Act-Assert (AAA) في كل اختبار للحصول على هيكل ووضوح في القراءة
- اختبر السلوك وتفاعلات المستخدم بدلاً من تفاصيل التطبيق لجعل الاختبارات مرنة عند إعادة الهيكلة
- استخدم hooks مثل beforeEach و afterEach للإعداد والتنظيف للحفاظ على عزل الاختبارات ومنع التلوث
避免
- اختبار تفاصيل التطبيق مثل استدعاءات الدوال الداخلية أو حالة المكون بدلاً من السلوك القابل للملاحظة
- كتابة اختبارات هشة تنكسر عند إعادة هيكلة الكود بينما يبقى السلوك دون تغيير
- إنشاء إعدادات اختبار معقدة للغاية مع الكثير من mocks التي تجعل الاختبارات صعبة الفهم والصيانة
常见问题
هل يجب استخدام Jest أم Vitest؟
كيف أختبر الكود الذي يستخدم APIs خارجية؟
ما هي نسبة تغطية الاختبار التي يجب استهدافها؟
هل يجب اختبار الدوال الخاصة؟
كيف أتعامل مع اختبارات قاعدة البيانات؟
ما الفرق بين الاختبارات الوحدوية واختبارات التكامل؟
开发者详情
作者
sickn33许可证
MIT
仓库
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/javascript-testing-patterns引用
main
文件结构