ياسمين (برنامج)
جاسمين هو إطار عمل مفتوح المصدر لاختبار جافا سكريبت . [ 4 ] يهدف إلى العمل على أي منصة تدعم جافا سكريبت، دون التأثير على التطبيق أو بيئة التطوير المتكاملة ، ويتميز ببنية سهلة القراءة. وهو متأثر بشكل كبير بأطر عمل أخرى لاختبار الوحدات، مثل ScrewUnit وJSSpec وJSpec و RSpec . [ 5 ]
تاريخ
قام المطورون في شركة Pivotal Labs بتطوير إطار عمل مشابه لاختبار الوحدات يسمى JsUnit قبل التطوير النشط لـ Jasmine. [ 6 ]
سمات
- يدعم الاختبار غير المتزامن. [ 7 ]
- يستخدم "الجواسيس" لتنفيذ بدائل الاختبار . [ 7 ]
- يدعم اختبار كود الواجهة الأمامية من خلال امتداد الواجهة الأمامية لـ Jasmine يسمى Jasmine-jQuery. [ 7 ]
الاستخدام
تهدف جاسمين إلى أن تكون سهلة القراءة. يبدو اختبار " مرحباً بالعالم" البسيط كما في الكود أدناه، حيث يصف `describe()` مجموعة من الاختبارات، بينما يمثل `it()` مواصفات اختبار فردي. يتبع الاسم "it()" مبدأ التطوير الموجه بالسلوك ، ويُستخدم كأول كلمة في اسم الاختبار، والذي يجب أن يكون جملة كاملة. يتبع الاستخدام صيغة مشابهة لصيغة RSpec .
يختبر الكود أدناه هذه الوظيفة
دالة helloWorld () { تُرجع 'مرحباً بالعالم!' ; }ويتحقق من أن مخرجاته هي بالفعل النص "Hello world!".
describe ( 'Hello world' , function () { it ( 'says hello' , function () { expect ( helloWorld ()). toEqual ( 'Hello world!' ); }); });توفر Jasmine مجموعة غنية من أدوات المطابقة المدمجة. في المثال أعلاه، تتحقق الدالة toEqual من تساوي القيمة المُعادة من الدالة helloWorld() مع السلسلة النصية 'Hello world!'. وهذا يُشابه التأكيدات المُستخدمة في أُطر الاختبار الأخرى. تُعيد أدوات المطابقة في Jasmine قيمة منطقية: true إذا تحققت التوقعات (وهي طريقة للإشارة إلى نجاح الاختبار)، أو false إذا لم تتحقق. [ 7 ] من الممارسات الجيدة وضع توقع واحد في مواصفات اختبار it() مُنفصلة.
تتضمن أدوات المطابقة المدمجة الأخرى: toBe، وtoBeTruthy، وtoBeFalsy، وtoContain، وtoBeDefined، وtoBeUndefined، وtoBeNull، وtoBeNaN، وtoBeGreaterThan، وtoBeLessThan، وtoBeCloseTo. [ 8 ] تتحقق أداة مطابقة الهوية toBe مما إذا كان شيئان هما نفس الكائن. أما أدوات مطابقة الشرط toBeTruthy وtoBeFalsy فتقيّم ما إذا كان شيء ما صحيحًا أم خاطئًا، بينما تتحقق أدوات مطابقة الشرط toBeDefined وtoBeUndefined مما إذا كان شيء ما مُعرّفًا أم غير مُعرّف. وكما يوحي الاسم، تتحقق toBeNull مما إذا كان شيء ما فارغًا (null)، بينما تتحقق toBeNaN مما إذا كان شيء ما ليس رقمًا ( NaN ). تقبل أداة مطابقة الدقة toBeCloseTo وسيطين، وتتحقق مما إذا كان الرقم قريبًا من الوسيط الأول، مع مراعاة مقدار معين من الدقة العشرية كما هو موضح في الوسيط الثاني. تُستخدم أداة المطابقة toContain للتحقق من احتواء عنصر أو كائن أو سلسلة فرعية في مصفوفة أو قائمة أو سلسلة نصية.
تُستخدم دالة المطابقة المدمجة الخاصة toThrow للتحقق من حدوث استثناء. [ 7 ] يتحقق الكود أدناه من حدوث استثناء "Some exception".
وصف ( 'توقع حدوث استثناء' , دالة () { اختبار ( 'يُطلق استثناءً ما' , دالة () { توقع ( دالة (){ أطلق ( 'استثناء ما' ); }). toThrow ( 'استثناء ما' ); }); });يحتوي Jasmine على عدد من الميزات الأخرى، مثل أدوات المطابقة المخصصة، وأدوات التجسس، ودعم المواصفات غير المتزامنة.
اختبار الياسمين
يأتي Jasmine مزودًا بأداة تشغيل اختبارات مدمجة. يمكن لاختبارات Jasmine تشغيل اختبارات المتصفح عن طريق تضمين ملف SpecRunner.html بسيط [ 9 ] أو باستخدامه كأداة تشغيل اختبارات سطر الأوامر المدعومة للغات مختلفة مثل Node.js وPython وRuby ، أو (الطريقة القديمة) باستخدام Karma [ 10 ] ، وهي أداة بسيطة لتشغيل اختبارات JavaScript.
مقارنة بين الياسمين والموكا
موكا هو إطار عمل آخر شائع لاختبار جافا سكريبت. ترد المقارنة بين جاسمين وموكا في الجدول أدناه. [ 11 ]
| الياسمين | موكا |
|---|---|
| تأتي ياسمين مع بدلاء اختبار عن طريق استخدام الجواسيس. | لا يأتي برنامج Mocha مزودًا بمكتبة اختبار بديلة، ويستخدم عادةً مكتبة خارجية مثل Sinon. |
| يحتوي برنامج Jasmine على أداة سطر أوامر لتشغيل الاختبارات. | يحتوي برنامج Mocha على أداة سطر أوامر لتشغيل الاختبارات. |
| تتضمن كلمة "ياسمين" تأكيدات ضمنية. | لا تحتوي Mocha على مكتبة تأكيدات وتستخدم Chai للتأكيدات. |
فوائد
- يهدف برنامج Jasmine إلى أن يكون مستقلاً عن المتصفح والإطار والمنصة واللغة. [ 12 ]
- إلى جانب التطوير القائم على السلوك، يدعم Jasmine أيضًا التطوير القائم على الاختبار . [ 12 ]
انظر أيضاً
مراجع
- ↑ فرانك، ديفيس دبليو. "إصدار جاسمين 1.0" . مختبرات بيفوتال . مؤرشف من الأصل في 22 فبراير 2014. تم الاسترجاع في 11 فبراير 2014 .
- ↑ "الإصدار 6.3.0" . 6 يونيو 2026. تم الاطلاع عليه في 7 يونيو 2026 .
- ↑ "jasmine/MIT.LICENSE" . GitHub . تم الاطلاع عليه بتاريخ 25 أبريل 2017 .
- ↑ "الصفحة الرئيسية" . jasmine.github.io .
- ↑ "الخلفية · jasmine/Jasmine Wiki" . GitHub .
- ↑ صفحة مشروع JsUnit على GitHub
- 1 2 3 4 5 راجونها، باولو (2013). اختبار جافا سكريبت الياسمين . نشر الحزمة. رقم ISBN 978-1782167211.
- ↑ هان، إيفان (2013). اختبار جافا سكريبت باستخدام جاسمين . دار نشر أورايلي ميديا. رقم ISBN 978-1449356378.
- ↑ "مشروع بسيط" . GitHub .
- ↑ "كارما ياسمين" . 16 يونيو 2022.
- ^ "الياسمين ضد موكا" . ماركو فرانسين . تم الاسترجاع في 13 فبراير 2017 .
- 1 2 "مقارنة: جاسمين مقابل موكا مقابل كيو نيت | ستاك شير" . تم الاطلاع عليه بتاريخ 13 فبراير 2017 .
روابط خارجية
- أدوات برمجة جافا سكريبت
- أطر اختبار الوحدات
- برنامج مرخص بموجب ترخيص MIT
- برنامج مجاني مكتوب بلغة جافا سكريبت
