تكرار السؤال: …
الإجابة المختصرة
تقوم بمقارنة هيكل الـ DOM للمكون بنسخة نصية محفوظة مسبقاً، والإفراط فيها يؤدي لإنشاء اختبارات هشة يتم تحديثها عشوائياً عند أي تغيير بسيط دون قراءة الفروقات الحقيقية.
الشرح
تعتبر الـ Snapshots مفيدة للتأكد من عدم تغير بنية نصوص أو أكواد SVG ثابتة عن طريق الخطأ. لكن المطورين غالباً ما يضغطون حرف "u" لتحديث اللقطات تلقائياً عند فشل الاختبار دون فحص التغيير الحقيقي، مما يفرغ الاختبار من قيمته ويسمح بتسرب الأخطاء.
مثال بالكود
test('يطابق لقطة زر الشراء الثابتة', () => {
const { container } = render(<BuyButton label="شراء الآن" />);
expect(container.firstChild).toMatchSnapshot();
});أخطاء شائعة
- الاعتماد الكلي على Snapshot Testing كبديل لاختبار الوظائف وسلوك المستخدم الحقيقي.