مرحبًا بعودتك.
دعنا نكتب اختباراتنا الأولى الآن.
سيكون لدينا وظيفة بسيطة نقوم بتشغيلها في هذا البرنامج.
سننشئ في ملفنا الرئيسي دعنا نقول لنجعل هذا أكبر قليلاً.
سنقول أن لدينا وظيفة تسمى القيام بالأشياء.
نعم ، وظيفة وصفية للغاية.
الآن هنا ، سنقول فقط إننا نقبل رقمًا.
وسنعيد ببساطة num زائد خمسة.
وظيفة بسيطة للغاية.
لنفترض أن هذا كان رمزنا الذي أنشأ تطبيقنا.
إذن هذه مجرد وظيفة واحدة.
لكن من الناحية النظرية ، لدينا العديد من الوظائف التي نريد اختبارها لأن هذه هي الإجراءات التي
سنقوم بها في الكود الخاص بنا.
لذا فإن طريقة عمل اختبار الوحدة.
مثل هذا.
لدينا ملف الاختبار الخاص بنا وبعد استيرادنا لاختبار الوحدة ، نريد استيراد الملف الذي نريد اختباره جيدًا
في حالتنا ، إنه py الرئيسي.
لذلك دعونا نستورد فقط.
رئيسي.
وهو هنا.
أو يمكننا استيراد الوظيفة أيضًا إذا أردنا ذلك.
لكن في حالتنا ، من الناحية الافتراضية ، لدينا العديد من الوظائف هنا ، لذا يمكننا فقط استيراد main واستخدام
جميع الوظائف المتاحة هناك.
الآن الطريقة التي يعمل بها اختبار الوحدة هي إنشاء فصل دراسي ثم تسميته كما تريد.
وهنا سيكون لدينا جميع اختباراتنا.
لذلك دعونا فقط نسميها Test Main.
ونرث داخل هذه الفئة ما يعطينا اختبار الوحدة ، وهو اختبار.
لذا فهذه مجرد طريقة قياسية للعمل مع اختبار الوحدة.
لذلك نحن نرث أيًا من حالات اختبار الوحدة ، والآن لدينا هذه الوظيفة متاحة في الفصل الرئيسي
للاختبار لدينا.
الآن هنا يمكننا البدء في اختبار وكتابة التعليمات البرمجية للاختبار.
فكيف يمكننا اختبار الرئيسي؟
هل وظيفة الاشياء.
حسنًا ، نقول ببساطة ، لنكتب دالة هنا أو طريقة لأن هذا جزء من الفصل ونقول ، مرحبًا
، أريد الاختبار ، افعل الأشياء.
وهنا ستحصل على الذات.
الآن هنا ، يمكنني اختبار الكود الخاص بي حتى يمكنني القول ما إذا كان الرقم هنا يساوي عشرة ، فأنا أعطيها رقمًا
عشوائيًا.
ثم سأقول أن النتيجة ستساوي النقطة الرئيسية التي تقوم بالأشياء.
لذا تذكر ، هل الأشياء تأتي من ولاية ماين ، وهي الوظيفة التي نريد اختبارها.
لذلك أريد تشغيل وظيفة do stuff ، وهنا أعطي المعلمة num ، التي قدمتها هنا للتو أو لنسمي
معلمة الاختبار هذه.
إذن معلمة الاختبار هذه ، سنقوم بتشغيل الكود وسنحصل على نتيجة.
وهذا السطر الأخير هو الجزء الأساسي من اختبار الوحدة.
يتيح لنا اختبار الوحدة أن نقول إن النقطة الذاتية ، والتأكيد على المساواة ، والتأكيد على المساواة هي شيء نحصل
عليه عندما نرث من اختبار الوحدة ونؤكد المساواة كما تقول.
أو تأكد من تساوي هاتين المعلمتين.
في حالتنا ، أريد اختبار ما إذا كانت النتيجة تساوي جيدًا ، في حالتنا ، عشرة.
زائد خمسة يجب أن يساوي 15.
حسنا.
الآن ، أخيرًا هنا ، نجري اختبار الوحدة.
والطريقة التي نجري بها اختبار الوحدة ، لأن هذا مجرد اختبار واحد قمت به.
كان بإمكاني إجراء عدة اختبارات.
كل ما نحتاج إلى قوله هو اختبار الوحدة الرئيسية.
والتي ستعمل على تشغيل ملف الاختبار بالكامل داخل الاختبار الرئيسي.
الآن ، إذا قمت بتشغيل هذا الآن ، فكل ما علي فعله هو أن أقول Python ثلاثة ، سطر الأوامر الخاص بي ، وأقول Test dot pi.
وأنا أحصل.
أجرى OC اختبارًا واحدًا بسرعة فائقة جدًا و 0 ثانية.
كان ذلك لطيفًا وسريعًا.
لنفترض الآن أنني أفعل شيئًا آخر حيث أكدت أن هذا يساوي عشرة.
إذا قمت بتشغيل هذا.
انظر الى.
لقد فشلت؟
ماذا تفشل؟
حسنًا ، فشل اختبار أداء الوظيفة.
على الخط الثامن.
هذا هو الصحيح هنا لدينا خطأ في التأكيد.
حصلنا على 15 ، لكننا توقعنا عشرة.
كم ذلك رائع؟
لذا لدي الآن إخفاق واحد ، لذا أحتاج إلى إصلاح الكود الخاص بي.
لذلك هناك شيء غير صحيح هنا.
الآن ، في حالتي ، هذا لأنني أكدت.
الإجابة على B 15.
ولكن ماذا لو أنشأنا اختبارًا آخر هنا؟
وتحقق.
مرحبًا ، ماذا لو كان لدينا اختبار ، فقم بالأشياء أيضًا.
وهذه المرة سيكون برنامج الاختبار في الواقع عبارة عن قطعة من الخيط.
إذن ماذا نريد أن تفعل الدالة؟
حسنًا ، في حالتنا ، ربما يعطينا خطأ ، ربما خطأ في القيمة.
لذلك سأقول فقط القيمة.
لأن هذا لا ينبغي أن يعمل.
إذا قمت بتشغيل هذا الآن ، دعونا مسح هذا.
إذا قمت بتشغيل هذا الآن.
حسنًا ، لدي اختباران.
لكن لدي وريثًا واحدًا وأرى هنا أنني سأحصل على وريث يقول ، مهلا ، إنني أحصل على نوع من
النوع يمكنه فقط أن يسلسل الوتر ، وليس ثمانية.
الآن ، في هذه الحالة ، ما الذي فشل بالفعل؟
هو ملف الاختبار لأن ما فعلناه للتو فشل بالفعل هو الوظيفة.
لكن على الفور.
أرى ذلك.
حسنا.
حسنًا ، هذا شيء نحتاج إلى إصلاحه حتى أتمكن من العودة إلى ماين وأقول ، مرحبًا
، أريد التأكد من اكتشاف أي أخطاء.
مثل أخطاء الكتابة أو أخطاء القيمة.
لذا فإن أول شيء يمكنني فعله هو أن أقول لا.
رقم.
وإذا قمت بحفظ ذلك ، للتأكد من أننا قمنا بتحويل شيء ما إلى عدد صحيح وقمت بتشغيله.
حسنًا ، لدي الآن خطأ في القيمة الحرفية لذلك لا يمكن تشغيله على هذه القطعة من السلسلة.
حسنًا ، هناك شيء آخر يمكننا القيام به لتحسين الكود الخاص بنا وهو لفه في محاولة باستثناء كتابة الكتلة ثم يمكننا
اللحاق بها.
لذلك دعنا نقول باستثناء.
وهنا تقبل خطأ القيمة.
ودعونا نقول كخطأ.
وهنا يمكننا أن نفعل ما نريد.
لذا يمكننا العودة إذا أردنا الخطأ أو حتى يمكننا رفع الهواء.
في حالتنا ، دعنا فقط نعيد الهواء.
وسأريكم لماذا في ثانية.
الآن ، إذا قمت بتشغيل هذا.
ترى أن اختباري قد فشل ، لكنه الآن خطأ في التأكيد.
يأتي خطأ التأكيد من ملف الاختبار الخاص بنا هنا ، وأنا أؤكد أنه ، مهلا ، أريد التأكد
من أن النتيجة وخطأ القيمة متساويان.
الآن ترى هنا أن هناك القليل من عدم التطابق.
لدينا خطأ في القيمة هنا لا يساوي خطأ قيمة الفئة.
الآن هذا نوع من الحيلة حيث أننا نرجع خطأ.
إنه في الواقع مثيل لفئة خطأ القيمة.
لذلك نحن بحاجة إلى القيام بشيء مثل هذا.
نحتاج أن نقول ، مهلا ، هو المثال.
ويقول ، ما هو هذا المثال؟
حسنًا ، هو نتيجة مثيل لخطأ في القيمة مثل هذا.
لكن المشكلة هنا.
هل هذا لنجعل هذا أكبر قليلاً.
تكمن المشكلة هنا في أن تأكيد التساوي سيتوقع معلمتين ، شيئين يجب أن يكونا متساويين.
لكن هنا أريد فقط التأكد من أن هذا يعود صحيحًا ، وأن النتيجة هي مثيل لخطأ في القيمة.
فكيف يمكنني فعل ذلك؟
حسنًا ، إلى جانب التأكيد على المساواة ، لدينا بعض الطرق الأخرى التي يقدمها لنا اختبار الوحدة.
إذا ذهبت إلى وثائق اختبار الوحدة هنا في السطر الأول ، فستجد قائمة طرق التأكيد.
لذلك أرى هنا أن هذه كلها طرق لتأكيد واختبار الكود الخاص بنا.
الشيء الذي ربما نريده هو أن هذا التأكيد صحيح.
للتحقق من صحة شيء ما.
حتى لو أؤكد.
أن هذا صحيح.
وأجريت الاختبار الخاص بي.
دعنا نوضح هذا ونجري اختباري مرة أخرى.
ها أنت ذا.
أجريت اختبارين ويبدو أن كل شيء على ما يرام.
ومرة أخرى ، لتجاوز هذا.
لماذا هذا؟
حسنًا ، أنا أقوم بتشغيل ملف الاختبار الخاص بي.
وبعد ذلك سأجري الاختبار ، وأقوم بأشياء ستكون على ما يرام.
ثم أقوم بالجزء الثاني حيث تكون معلمة الاختبار شيئًا لا نريده حقًا ، وهو مجرد
جزء من سلسلة.
ستعطينا النتيجة خطأ في القيمة لأننا اكتشفنا هذا الخطأ ونقوم الآن بإرجاع الخطأ.
ثم أخيرًا ، قمنا بتشغيل هذا الجزء من الكود.
مهلا ، هل هذا صحيح؟
هل ستكون النتيجة خطأ في القيمة؟
لذلك ترى ما نفعله هنا.
ما نحاول القيام به من خلال اختباراتنا هو تحسين وظيفتنا ببساطة عن طريق محاولة كسرها.
لذلك نريد كسر وظيفتنا ونرى ، مهلا ، هل يمكنني خداع هذه الوظيفة لمنحني الهواء؟
وبعد ذلك بمجرد القيام بذلك وفشل الاختبار ، يمكنك العودة إلى الوظيفة ومحاولة إصلاحها.
يشبه ما فعلناه هنا ، وهو حقًا رائع حقًا.
هذه ممارسة شائعة مع الاختبار حيث تحاول كسر الأشياء حتى تصبح الوظيفة مثالية.
الآن أريدك أن تأخذ وقتك هنا لترى ما إذا كان بإمكانك كسر هذه الوظيفة وربما إضافة عدة اختبارات
أخرى في الفيديو التالي.
سأضيف المزيد لجعل هذه الوظيفة أفضل.
سأراك في المرحلة التالية.