كلنا عارفين ان الفكرة من ال Unit Testing إنه بيضمن لنا سلامة الـ Business Functionalities. وفي حال حصل أي تغيير في الـ Business Logic بنحتاج نعدل في unit tests عشان نتأكد أن كل شيء شغال بشكل صحيح.
طيب أحيان لو في معانا Critical Component ونحتاج نتأكد أنه ما حصل له أي تغيير غير متوقع في النتائج. هنا نلجأ لـ Snapshot Testing. الفكرة من هذا النوع من الإختبارات إن النظام بيحفظ نسخة من مخرجات الكود الحالية، وفي كل مرة نعمل run لل test بيروح يقارن المخرجات الجديدة مع النسخة المخزنة وأي اختلاف يعتبر مشكلة.
ال Snapshot Testing فعال لو أحنا نحتاج نتتبع التغييرات غير المقصودة ونضمن استقرار المخرجات.
ولكن في حالات مش مناسب أنه نعمل لها Snapshot test. زي الحالات اللي يكون ال outputs متغيرة أو ديناميكية هنا بيعطينا نتائج غير دقيقة وبيحصل fail لل test. لأنه مش متوافق مع النسخة المخزنة في النظام. لذلك هو يستخدم في الحالات اللي المخرجات فيها ثابتة.
Original source
This content was originally published as a LinkedIn post. Open it in a new tab.