0%
الاختبارات الوحدوية باستخدام Vitest

الاختبارات الوحدوية باستخدام Vitest

اختبارٌ لا يمكن فهمه خلال عشر ثوانٍ سيُحذف بدل أن يُصلَح

10-15 دقيقة

الاختبارات الوحدوية باستخدام Vitest

تستلم مشروعًا مهجورًا منذ ثمانية أشهر. تضم مجموعة الاختبارات 340 ملفًا، منها 12 فاشلًا. تفتح أولها: اسمه test 4، وهو يبني كائنًا من 60 سطرًا داخل beforeEach مشترك بين 18 اختبارًا، ويقارن تأكيده الأخير كائنًا كاملًا بقيمة حرفية ثابتة. تُخبرك رسالة الفشل بوجود اختلاف في الحقل updatedAt. لا تعرف ما الذي كان هذا الاختبار مُفترضًا أن يضمنه، ولا إن كان المنتج معطوبًا. فتعطّله، ولن تعيد تفعيله أبدًا.

هذا السيناريو ليس استثنائيًا: إنه الطريقة المعتادة التي تموت بها مجموعات الاختبارات. فالتكلفة الحقيقية للاختبار لا تظهر عند كتابته، بل في اللحظة التي يفشل فيها بعد ستة أشهر أمام شخص لم يكن حاضرًا. الاختبار الجيد يُقرأ كجملة، ويفشل برسالة تشير إلى السبب، ولا يعتمد على أي سياق مشترك يلزم إعادة بنائه ذهنيًا. لن يقوم Vitest بهذا العمل نيابةً عنك، لكنه يزيل من الاحتكاك ما يكفي — بدء فوري، ووضع مراقبة موجَّه، ورسائل اختلاف مقروءة — بحيث لا يبقى لديك عذر.

التثبيت والإعداد

يعيد Vitest استخدام إعداد Vite الخاص بالمشروع: الأسماء المستعارة نفسها، وآلية تحليل الوحدات نفسها، وتحويل TypeScript نفسه. لا توجد سلسلة بناء منفصلة عليك صيانتها.

npm install --save-dev vitest @vitest/coverage-v8

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!