في العمل ، نكتب كثيرًا من منطق العمل المتغير في JS (بدء التشغيل). حتى كثير وأريد اختبار كل هذا من العادة القديمة ، ولكن بشكل أسرع بطريقة ما ، بحيث لا تتداخل الاختبارات مع govnokod عند الحاجة إليها ، ولا يتم تخصيص بنية الوحدات بشكل خاص للاختبارات. في مرحلة ما ، جاء التفكير أنه يمكن أيضًا تشغيله تلقائيًا بطريقة ما بمساعدة مكون إضافي من بابل ، بحيث يمكن في البداية أن تتحول جميع المتغيرات والأساليب الخاصة في بيئة اختبار ، ولكنها لن تلمسها في الإنتاج. اتضح أن تكون بسيطة وممتعة للغاية. هذه هي الطريقة التي ظهرت بها Introscope ، والتي نختبر بها الآن كل شيء أكثر أو أقل تعقيدًا.
بعد أن سلمت المشروع ، كنت مشتتًا لعدة أشهر لتحسين النشر والمراقبة ، واستراح ، وحترم هبر ، وعندما كنت بحاجة لاختبار شيء ما مرة أخرى ، شعرت بالسعادة على الفور بأداتي الخاصة! هذا لا يحدث لي في كثير من الأحيان. بتعبير أدق ، لم يكن كذلك. لذلك ، أعتقد أن الشيء يعمل. آمل أن تكون في متناول يدي أيضا.
باختصار ، ماذا يمكن أن تفعل؟
- يلتف الوحدة بالكامل في وظيفة المصنع بحيث يمكنك إنشاء العديد من الوحدات النمطية الجديدة أثناء الاختبار حسب حاجتك. هذا يلغي الحاجة إلى القيام unmock.
- نظرًا لأن الوحدة النمطية مغلفة ، فإن tulza يعرف بالضبط المتغيرات التي تستوردها الوحدة ويمكنه إنشاء moki حسب نوعه. هذا يعمل بشكل جيد للغاية لأسلوب وظيفي أكثر أو أقل.
- إنه قادر على تسجيل المكالمات والوسيطات لوظائف من الوحدات الخارجية ووضعها كلها في سجل ، والتي يتم متسلسلها بشكل جميل للقطات (إذا كنت تستخدم Jest ، فسيبدأ كل شيء على الفور).
- ميزة Killer: يمكنها حفظ نتيجة استدعاء وظيفة خارجية واستخدامها لإجراء مزيد من الاختبارات. أنها مريحة للغاية عند اختبار طلبات الخدمات الخارجية التي اعتدناها على القيادة في moki بأيدينا.
- بالاقتران مع Jest ، يتم تحديث الاختبارات عن طريق الضغط على زر U (أنا لا أمزح) ، والذي يقوم بتحديث اللقطات. نهج الاختبار الذهبي في كل مجدها.
- يعمل في الإنتاج لمدة عام تقريبا.
نتيجة لذلك
بدأت الاختبارات مكتوبة من قبل أشخاص لم يرغبوا سابقًا في سماعها ، لأنك تحتاج فقط إلى استدعاء الوظيفة باستخدام المعلمات اللازمة وحفظ سجل ما حدث في هذه الوظيفة باستخدام زر واحد. أردت فقط اختبار شيء آخر ...
الرابط: Introscope (هناك أيضا gif screencasts!). سأكون سعيدًا جدًا للنقد البنّاء وروابطه مع نفسه ، ولكني فعلت بشكل أفضل: D
