1. ما هو qunit
QuNit (http://qunitjs.com/) هو إطار اختبار وحدة JavaScript قوي للغاية يمكن أن يساعدك على تصحيح الكود الخاص بك. كتبه أعضاء فريق jQuery وهو اختبار رسمي ل jQuery. لكن QUNIT بشكل عام بما يكفي لاختبار أي رمز JavaScript العادي ، فقد يختبر JavaScript من جانب الخادم من خلال بعض محركات JavaScript مثل Rhino أو V8.
إذا لم تكن على دراية بمفهوم "اختبار الوحدة" ، فالرجاء لا تقلق. هذا ليس من الصعب للغاية فهمه:
نسخة الكود كما يلي:
في برمجة الكمبيوتر ، يعد اختبار الوحدة (المعروف أيضًا باسم اختبار الوحدة) اختبارًا يؤدي اختبار الصواب على وحدات البرنامج (أصغر وحدة لتصميم البرمجيات). وحدة البرنامج هي أصغر مكون قابل للاختبار للتطبيق. في البرمجة الإجرائية ، الوحدة هي برنامج واحد ، وظيفة ، الإجراء ، إلخ ؛ بالنسبة للبرمجة الموجهة للكائنات ، فإن الأصغر وحدة هي طريقة ، بما في ذلك الأساليب في الفئات الأساسية (الفئات الفائقة) ، والفئات المجردة ، أو الفئات المشتقة (الفئات الفرعية). - مقتبس من ويكيبيديا.
ببساطة ، تكتب اختبارات لكل ميزة من ميزة الكود الخاص بك ، وإذا نجحت كل هذه الاختبارات ، فيمكنك التأكد من أن الكود غير معيب (عادةً ما يعتمد على مدى شمولية الاختبار الخاص بك).
2. لماذا تريد اختبار الكود الخاص بك
إذا لم تكن قد كتبت أبدًا أي اختبارات وحدة من قبل ، فيمكنك تحميل الكود الخاص بك مباشرة إلى موقع الويب ، وانقر لفترة من الوقت لمعرفة ما إذا كانت أي مشاكل قد نشأت ، ومحاولة حل المشكلات التي وجدتها. سيكون هناك العديد من المشاكل مع هذه الطريقة.
بادئ ذي بدء ، هذا مزعج للغاية. النقر ليس في الواقع مهمة سهلة ، لأنه يجب عليك التأكد من النقر على كل شيء وهناك فرصة جيدة لأنك فاتتك واحدة أو اثنين.
ثانياً ، لا يمكن إعادة استخدام كل ما تفعله للاختبار ، مما يعني أنه من الصعب التراجع. ما هي العودة؟ تخيل أنك كتبت بعض التعليمات البرمجية واختبرتها ، وأصلح جميع العيوب التي عثرت عليها ، ثم نشرها. في هذه المرحلة ، يرسل المستخدم بعض الملاحظات حول العيوب الجديدة ويتطلب بعض الميزات الجديدة. يمكنك العودة إلى الرمز ، وإصلاح هذه العيوب الجديدة وإضافة ميزات جديدة. ما قد يحدث بعد ذلك هو أن بعض العيوب القديمة تظهر مرة أخرى ، والتي تسمى "العودة". انظر ، الآن عليك النقر مرة أخرى ، ومن المحتمل أنه لا يمكنك العثور على هذه العيوب القديمة ؛ حتى لو قمت بذلك ، سيستغرق الأمر بعض الوقت لمعرفة أن مشكلتك ناتجة عن الانحدار. باستخدام اختبارات الوحدة ، تكتب اختبارات للعثور على عيوب ، وبمجرد تعديل الكود ، يمكنك التصفية من خلال الاختبار مرة أخرى. في حالة حدوث الانحدار ، ستفشل بعض الاختبارات بالتأكيد ، ويمكنك التعرف عليها بسهولة ومعرفة أي جزء من الرمز يحتوي على الخطأ. الآن بعد أن عرفت ما قمت بتعديله الآن ، يمكن حله بسهولة.
ميزة أخرى لاختبار الوحدة ، وخاصة لتطوير الويب: فهو يجعل اختبار التوافق عبر المستعرض أمرًا سهلاً. فقط قم بتشغيل حالات الاختبار في متصفحات مختلفة. إذا كانت هناك مشكلة في متصفح واحد ، فإنك تقوم بإصلاحه وإعادة تشغيل حالات الاختبار هذه للتأكد من عدم وجود انحدار في المتصفحات الأخرى. بمجرد اجتياز جميعهم الاختبار ، يمكنك القول على وجه اليقين أن جميع المتصفحات المستهدفة تدعمه.
أريد أن أذكر مشروعًا لـ John Resig: TestSwarm (http://testswarm.com/). يستغرق اختبار وحدة JavaScript إلى مستوى جديد ، من خلال توزيعه ، وهو موقع ويب يحتوي على العديد من حالات الاختبار التي يمكن لأي شخص أن يذهب إلى هناك لتشغيل بعض حالات الاختبار ثم إعادة النتائج إلى الخادم. وبهذه الطريقة ، سيتم اختبار الرمز بسرعة كبيرة على متصفحات مختلفة ، أو حتى تشغيل منصات مختلفة.
3. كيفية كتابة اختبارات الوحدة مع Qunit
لذا ، كيف تكتب اختبارات الوحدة بشكل صحيح مع Qunit؟ أولاً ، تحتاج إلى إعداد بيئة اختبار:
نسخة الكود كما يلي:
<! doctype html>
<html>
<head>
<title> QuNit Test Suite </itlem>
<link rel = "STYLESHEET" href = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.css" type = "text/css" media = "screen">
<script type = "text/javaScript" src = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.js"> </script>
<!-ملف مشروعك يذهب هنا->
<script type = "text/javaScript" src = "myProject.js"> </script>
<!-ملف الاختبارات الخاص بك يذهب هنا->
<script type = "text/javaScript" src = "mytests.js"> </script>
</head>
<body>
<h1 id = "qunit-header"> Qunit Test Suite </h1>
<h2 id = "qunit-banner"> </h2>
<div id = "qunit-testrunner-toolbar"> </div>
<h2 id = "qunit-useragent"> </h2>
<ol id = "qunit-tests"> </ol>
</body>
</html>
كما ترون ، يتم استخدام إصدار إطار عمل QUNIT المدارة هنا.
تمت إضافة الكود الذي سيتم اختباره إلى myProject.js ، ويجب إدراج اختبارك في myTest.js. لتشغيل هذه الاختبارات ، ما عليك سوى فتح ملف HTML في متصفح. حان الوقت الآن لكتابة بعض الاختبارات.
حجر الزاوية في اختبار الوحدة هو التأكيد:
التأكيد هو اقتراح يتنبأ بنتيجة الإرجاع للرمز الخاص بك. إذا كان التنبؤ خطأ وفشل التأكيد ، فأنت تعلم أن هناك خطأ ما.
قم بتشغيل التأكيدات ويجب أن تضعها في حالة الاختبار:
نسخة الكود كما يلي:
// دعونا نختبر هذه الوظيفة
وظيفة iseven (val) {
إرجاع val ٪ 2 === 0 ؛
}
اختبار ('iseven ()' ، function () {
موافق (iseven (0) ، "الصفر هو رقم زوجي") ؛
حسنًا (Iseven (2) ، "هكذا اثنان") ؛
حسنًا (Iseven (-4) ، "هكذا هو أربعة سلبية") ؛
حسنًا (! iseven (1) ، "واحد ليس رقمًا متساويًا") ؛
حسنًا (! Iseven (-7) ، "لا سلبي سبعة") ؛
})
نحن هنا نحدد وظيفة: ISEVEN ، والتي تستخدم لاكتشاف ما إذا كان الرقم هو رقم فردي ، ونريد اختبار هذه الوظيفة لتأكيد أنها لن تعيد الإجابة الخاطئة.
ندعو أولاً اختبار () ، الذي يبني حالة اختبار ؛ المعلمة الأولى هي سلسلة يتم عرضها في النتيجة ، والمعلمة الثانية هي وظيفة رد اتصال تتضمن سيدنا المقاطع.
كتبنا 5 تأكيدات ، وكلها منطقية. تأكيد منطقي يتوقع أن تكون حجةها الأولى صحيحة. المعلمة الثانية لا تزال الرسالة التي سيتم عرضها في النتيجة.
إليك ما تريد الحصول عليه ، طالما تقوم بإجراء الاختبار:
4. مرجع التعلم المتعمق
ما سبق فقط يقدم بإيجاز qunit.js ، وهناك العديد من أساليب التأكيد. للحصول على تفاصيل ، يرجى الرجوع إلى وثائق API:
http://api.qunitjs.com/
يعد اختبار الوحدة طريقة جيدة جدًا لاختبار الكود الخاص بك قبل نشره. إذا لم تكن قد كتبت أي اختبارات وحدة من قبل ، فقد حان الوقت للبدء!