javascript - تحميل - شرح جافا سكريبت




أدوات اختبار وحدة جافا سكريبت لـ TDD (9)

BusterJS

هناك أيضا Buster.js من كريستيان يوهانسن ، مؤلف كتاب تطوير اختبار جافا سكريبت وإطار سينون. من الموقع:

Buster.JS هو إطار اختبار جافا سكريبت جديد. يقوم باختبار المتصفح من خلال التشغيل التلقائي للاختبار في المتصفحات الفعلية (يفكر JsTestDriver) ، بالإضافة إلى اختبار Node.js.

لقد نظرت في العديد من اختبارات وأدوات اختبار جافا سكريبت وأخذت في الاعتبار ، ولكني لم أتمكن من العثور على خيار مناسب للبقاء متوافرين تمامًا مع TDD. لذا ، هل هناك أداة اختبار وحدة جافا سكريبت متوافقة تمامًا مع TDD؟


الكرمة أو Protractor

Karma هو برنامج اختبار جافا سكريبت الذي تم تصميمه باستخدام Node.js وهو مخصص لاختبار الوحدة.

المنقلة هي لاختبار نهاية إلى نهاية ويستخدم برنامج تشغيل ويب Selenium لقيادة الاختبارات.

كلاهما قام به فريق Angular. يمكنك استخدام أي مكتبة التوكيد التي تريدها مع أي منهما.

Screencast: Karma الشروع في العمل

ذات الصلة :

الايجابيات :

  • يستخدم node.js ، متوافق مع Win / OS X / Linux
  • قم بإجراء اختبارات من المتصفح أو بدون رأس باستخدام PhantomJS
  • تشغيل على عدة عملاء في وقت واحد
  • خيار لإطلاق المتصفحات والتقاطها وإيقاف تشغيلها تلقائيًا
  • الخيار لتشغيل الخادم / العملاء على تطوير الكمبيوتر أو بشكل منفصل
  • تشغيل اختبارات من سطر الأوامر (يمكن دمجها في النمل / المخضرم)
  • كتابة الاختبارات xUnit أو أسلوب BDD
  • يدعم العديد من أطر اختبار جافا سكريبت
  • اختبارات التشغيل التلقائي عند الحفظ
  • تطلب الوكلاء عبر المجال
  • ممكن للتخصيص:
    • مدها لتغليف الأطر الاختبارية الأخرى (Jasmine، Mocha، QUnit built-in)
    • التأكيدات الخاصة بك / يدحض
    • للصحفيين
    • قاذفات المستعرض
  • البرنامج المساعد ل WebStorm
  • بدعم من Netbeans IDE

سلبيات :

  • لا يدعم اختبار NodeJS (أي الخلفية)
  • لا يوجد ملحق لـ Eclipse (بعد)
  • لا يوجد تاريخ لنتائج الاختبار السابقة

mocha.js

أنا غير مؤهّل تمامًا للتعليق على ميزات mocha.js ، ونقاط القوة والضعف ، ولكن تم التوصية لي من قبل شخص أثق به في منتدى JS.

قائمة الميزات ، كما أفاد موقعها على شبكة الإنترنت:

  • دعم المتصفح
  • دعم async بسيط ، بما في ذلك الوعود
  • تقرير التغطية الاختبارية
  • دعم الفرق سلسلة
  • javascript # API لإجراء الاختبارات
  • حالة الخروج المناسبة لدعم CI الخ
  • يكتشف تلقائيا ويعطل التلوين لغير ttys
  • خرائط استثناءات uncaught إلى حالة اختبار الصحيح
  • متزامن اختبار الدعم
  • اختبار المهلات المحددة
  • دلل إعلام الإخطار
  • تقارير فترات الاختبار
  • يسلط الضوء على الاختبارات البطيئة
  • دعم مراقب الملف
  • كشف تسرب متغير عالمي
  • اختيارات التشغيل الاختيارية التي تتطابق مع regexp
  • الخروج التلقائي لمنع "تعليق" مع حلقة نشطة
  • يمكن بسهولة إنشاء مجموعات meta-test وحالات اختبار
  • mocha.opts دعم الملف
  • عناوين الأجنحة القابلة للنقر لتصفية تنفيذ الاختبار
  • دعم مصحح العقدة
  • يكتشف مكالمات متعددة للقيام به ()
  • استخدام أي مكتبة التوكيد التي تريدها
  • التقارير الموسعة ، المجمعة مع 9 + للصحفيين
  • dsls اختبار الموسعة أو "الواجهات"
  • قبل وبعد كل قبل كل خطاف
  • دعم انتقالي اعتباطي (نص برمي إلخ)
  • حزمة TextMate

yolpo

لم يعد هذا موجودًا ، حيث تمت إعادة التوجيه إلى sequential.js بدلاً من ذلك

Yolpo هو أداة لتصور تنفيذ javascript. يتم تشجيع مطوّري واجهة برمجة التطبيقات لـ Javascript على كتابة حالات استخدامهم لإظهار واجهة برمجة التطبيقات وإخبارها. تشكل حالات الاستخدام هذه أساس اختبارات الانحدار.

AVA

AVA

عداء اختبار مستقبلية مع دعم مدمج ل ES2015. على الرغم من أن جافا سكريبت واحد ترابط ، يمكن أن يحدث IO في Node.js بالتوازي بسبب طبيعته المتزامن. يستفيد AVA من هذا ويدير اختباراتك بشكل متزامن ، وهو مفيد بشكل خاص لاختبارات IO الثقيلة. بالإضافة إلى ذلك ، يتم تشغيل ملفات الاختبار بالتوازي كعمليات منفصلة ، مما يمنحك أداء أفضل وبيئة معزولة لكل ملف اختبار.

  • الحد الأدنى والسريع
  • بناء الجملة اختبار بسيط
  • يدير الاختبارات في وقت واحد
  • يفرض كتابة الاختبارات الذرية
  • لا globals الضمنية
  • بيئة معزولة لكل ملف اختبار
  • اكتب اختباراتك في ES2015
  • دعم الوعد
  • دعم وظيفة المولد
  • دعم وظيفة المتزامن
  • دعم ملحوظ
  • يؤكد المحسن
  • اختياري TAP o utput
  • آثار كومة نظيفة

Buster.js

عداء اختبار جافا سكريبت بني مع Node.js. وحدات جدا ومرنة. لأنه يأتي مع مكتبة التوكيد الخاصة به ، ولكن يمكنك إضافة بنفسك إذا أردت. يتم فصل مكتبة التأكيدات ، لذا يمكنك أيضًا استخدامها مع المتسابقين الآخرين. بدلاً من استخدام assert(!...) أو expect(...).not... ، فإنه يستخدم refute(...) وهو إيمهو تويست لطيفة.

مجموعة أدوات اختبار جافا سكريبت للمتصفح. يقوم باختبار المتصفح بأتمتة المستعرض (يفكر في JsTestDriver) ، واختبار لغة HTML ثابت على غرار qunit ، والاختبار في متصفحات بدون رأس (phantomjs ، jsdom ، ...) ، وأكثر من ذلك. ألق نظرة على النظرة العامة !

مجموعة أدوات اختبار Node.js. يمكنك الحصول على نفس مكتبة حالات الاختبار ومكتبة التأكيدات ، وما إلى ذلك. وهذا رائع أيضًا للمتصفح المختلط وشفرة Node.js. اكتب حالة الاختبار الخاصة بك مع Buster.JS وقم بتشغيلها في Node.js وفي مستعرض حقيقي.

Screencast: Buster.js الشروع في العمل (2:45)

الايجابيات :

  • يستخدم node.js ، متوافق مع Win / OS X / Linux
  • إجراء اختبارات من المتصفح أو بدون رأس باستخدام PhantomJS (قريبًا)
  • تشغيل على عدة عملاء في وقت واحد
  • يدعم اختبار NodeJS
  • لا تحتاج إلى تشغيل الخادم / العملاء على كمبيوتر التطوير (لا حاجة لـ IE)
  • تشغيل اختبارات من سطر الأوامر (يمكن دمجها في النمل / المخضرم)
  • كتابة الاختبارات xUnit أو أسلوب BDD
  • يدعم العديد من أطر اختبار جافا سكريبت
  • تأجيل الاختبارات بدلاً من التعليق عليها
  • SinonJS بنيت في
  • اختبارات التشغيل التلقائي عند الحفظ
  • تطلب الوكلاء عبر المجال
  • ممكن للتخصيص:
    • قم بتوسيعه لتغليف أطر عمل الاختبار الأخرى (JsTestDriver built in)
    • التأكيدات الخاصة بك / يدحض
    • المراسلون (XML xunit ، والنقاط التقليدية ، والمواصفات ، والنقر ، وفريق العمل ، والمزيد)
    • تخصيص / استبدال HTML المستخدم في تشغيل اختبارات المستعرض
  • تكامل TextMate و Emacs

سلبيات :

  • لا يزال في بيتا لذلك يمكن أن يكون عربات التي تجرها الدواب
  • لا يوجد ملحق لـ Eclipse / IntelliJ (حتى الآن)
  • لا تجمع النتائج حسب نظام التشغيل / المتصفح / الإصدار مثل TestSwarm *. ومع ذلك ، فإنه يطبع اسم المتصفح والإصدار في نتائج الاختبار.
  • لا يوجد تاريخ لنتائج الاختبار السابقة مثل TestSwarm *
  • لا يعمل بشكل كامل على النوافذ اعتبارًا من مايو 2014

* TestSwarm هو أيضًا خادم تكامل مستمر ، بينما تحتاج إلى خادم CI منفصل لـ Buster.js. ومع ذلك ، فإنه يتم إخراج تقارير xUnit XML ، لذا يجب أن يكون من السهل دمجها مع Hudson أو Bamboo أو غيرها من خوادم CI.

TestSwarm

https://github.com/jquery/testswarm

لم يعد TestSwarm رسميًا قيد التطوير النشط كما هو مذكور على صفحة الويب الخاصة بـ GitHub. يوصون Karma ، متصفح runstack ، أو المتدرب.

Jasmine

هذا هو اختبار تجريبي من جانب العميل قد يثير اهتمام المطورين المألوفين مع Ruby أو Ruby on Rails. يستند بناء الجملة إلى RSpec المستخدم للاختبار في مشاريع Rails.

ياسمين هي إطار تطوير مدفوع بالسلوك لاختبار كود JavaScript الخاص بك. لا يعتمد على أي إطارات JavaScript أخرى. لا يتطلب DOM.

إذا كان لديك خبرة مع هذا الاختبار ، يرجى المساهمة بمزيد من المعلومات :)

مشروع المنزل: Jasmine

QUnit

تركز QUnit على اختبار JavaScript في المتصفح مع توفير أكبر قدر من الراحة للمطور قدر الإمكان. Blurb من الموقع:

QUnit هو مجموعة اختبار وحدة جافا سكريبت سهلة الاستخدام وقوية. يتم استخدامه بواسطة jQuery و jQuery UI ومشاريع jQuery Mobile وقادر على اختبار أي شفرة جافا سكريبت عامة

يشارك Qunit بعض التاريخ مع TestSwarm (أعلاه):

تم تطوير QUnit في الأصل من قبل John Resig كجزء من jQuery. وفي عام 2008 ، حصلت الشركة على وثائقها الخاصة واسمها وواجهة برمجة التطبيقات ، مما يسمح للآخرين باستخدامها في اختبار الوحدة الخاصة بهم أيضًا. في الوقت الذي كان لا يزال يعتمد على jQuery. إعادة كتابة في عام 2009 ثابتة ، الآن QUnit تدير مستقل تماما. تتبع أساليب تأكيد QUnit مواصفات اختبار وحدة CommonJS ، التي تأثرت إلى حد ما بـ QUnit.

مشروع المنزل: QUnit

سينون

أداة أخرى رائعة هي sinon.js بقلم Christian Johansen ، مؤلف تطوير تطوير جافا سكريبت المبني على الاختبار . أفضل وصفه بنفسه:

اختبار مستقل جواسيس ، بذرة و mocks لجافا سكريبت. لا توجد تبعيات تعمل مع أي إطار اختبار وحدة.

المتدرب

يوفر موقع الويب الداخلي مقارنة مباشرة لأطر الاختبار الأخرى في هذه القائمة. يوفر ميزات أكثر من الصندوق مقارنة بأي نظام اختبار آخر يعتمد على JavaScript.


جوجل-شبيبة الاختبار:

إطار اختبار جافا سكريبت الذي أصدرته Google: https://github.com/google/gjstest

  • سريع للغاية بدء التشغيل ووقت التنفيذ ، دون الحاجة إلى تشغيل المتصفح.
  • إخراج نظيف وقابل للقراءة في حالة كل من الاختبارات الناجحة والفاشلة.
  • عداء اختبار يستند إلى مستعرض يمكن تحديثه ببساطة كلما تم تغيير JS.
  • النمط والدلالات التي تشبه Google Test لـ C ++.
  • إطار $tearDown يتطلب الحد الأدنى من كود $tearDown (على سبيل المثال ، لا يوجد أي $tearDown أو $verifyAll ) مع أسلوب $verifyAll تستند إلى إطار عمل Google C ++ Mocking Framework .

لا يوجد حاليا ثنائيات لنظام التشغيل Windows


YUI لديها إطار اختبار كذلك. هذا الفيديو من ياهو! المسرح هو مقدمة جميلة ، على الرغم من أن هناك الكثير من الأساسيات حول TDD في المقدمة.

هذا الإطار عام ويمكن تشغيله على أي مكتبة جافا سكريبت أو JS.


ألقِ نظرة على إطار اختبار وحدة Dojo Object Harness (DOH) ، وهو عبارة عن إطار مستقل إلى حد كبير لاختبار وحدة جافا سكريبت ولا يحتوي على أي تبعيات Dojo. هناك وصف جيد للغاية في تطبيقات اختبار الوحدة Web 2.0 باستخدام Dojo Objective Harness .

إذا كنت تريد إجراء اختبار واجهة المستخدم تلقائيًا (نقطة مؤلمة للعديد من المطورين) - يمكنك doh.robot على doh.robot (تحديث لأسفل مؤقتًا. تحديث: رابط آخر http://dojotoolkit.org/reference-guide/util/dohrobot.html ) و dijit.robotx ( dijit.robotx مؤقت) . تم تصميم هذا الأخير لاختبار القبول. تحديث:

تشرح المقالات المرجعية كيفية استخدامها وكيفية محاكاة مستخدم يتفاعل مع واجهة المستخدم باستخدام الماوس و / أو لوحة المفاتيح ، وكيفية تسجيل جلسة اختبار ، بحيث يمكنك "تشغيلها" لاحقًا تلقائيًا.


قد تكون مهتمًا أيضًا بإطار اختبار الوحدة الذي يعد جزءًا من qooxdoo ، وهو إطار RIA مفتوح المصدر شبيه بـ Dojo ، و ExtJS ، وما إلى ذلك ولكن مع سلسلة أدوات شاملة تمامًا.

جرب النسخة الإلكترونية من testrunner . تلميح: اضغط على السهم الرمادي في أعلى اليسار (يجب جعله أكثر وضوحًا). إنه زر "تشغيل" يشغل الاختبارات المحددة.

لمعرفة المزيد حول فئات JS التي تسمح لك بتحديد اختبارات الوحدة الخاصة بك ، راجع عارض واجهة برمجة التطبيقات عبر الإنترنت.

لإجراء اختبار UI مؤتمت (استنادًا إلى RC Selenium) ، تحقق من مشروع Simulator .


نحن الآن نستخدم Qunit مع Pavlov و JSTestDriver معًا. هذا النهج يعمل بشكل جيد بالنسبة لنا.

QUnit

Pavlov ، source

jsTestDriver ، source


يجب عليك إلقاء نظرة على env.js انظر مدونتي كمثال لكتابة اختبارات الوحدة مع env.js.






tdd