[MUSIC]
في المحاضرة السابقة والتمرين اللذين أعقبا المحاضرة،
درسنا استخدام اختبارات الوحدة في Angular.
لقد رأينا كيف يمكن اختبار الأجزاء المختلفة من تطبيقنا الزاوي، والمكونات
، والخدمات، والتوجيهات، والأنابيب باستخدام اختبارات الوحدة.
ولكن بالطبع،
لا تكشف اختبارات الوحدة عن كل شيء عن التفاعل بين المكونات.
هذا هو المكان الذي تمكننا فيه استراتيجيات الاختبار من نهاية إلى نهاية
من رؤية التطبيق بأكمله يعمل كوحدة واحدة.
لذلك في هذه المحاضرة، سوف ندرس استخدام الاختبارات من البداية إلى النهاية
والدور الذي تلعبه في استراتيجية الاختبار الشاملة لتطبيقات Angular الخاصة بنا.
في التمرين التالي، سننظر بإيجاز في كيفية إجراء
اختبار من طرف إلى طرف لتطبيق Angular الخاص بنا، باستخدام أداة تسمى المنقلة.
وكما تعلمنا بالفعل في المحاضرة السابقة، فإن اختبارات الوحدة
توفر لنا فرصة رائعة لاختبار وحداتنا بمعزل عن بعضها البعض.
التأكد من أن وحداتنا تؤدي ما يتوقع أن تقوم به،
منطقها صحيح، والتفاعل بين المكون
وقالبه راسخ.
ولكن بالطبع، لا
تكمل اختبارات الوحدة الصورة الكاملة لكيفية عمل تطبيق Angular النموذجي.
ليس لديك وحدات فردية تعمل في عزلة.
بدلاً من ذلك، تتفاعل المكونات مع الخدمات.
قد تستخدم المكونات الأنواع.
الخدمات، بدورها، سوف تتفاعل مع الخلفية لجلب البيانات.
ثم المكون نفسه سيكون مسؤولا عن
تقديم وجهات النظر باستخدام قوالب للمكون.
إذاً كيف تعمل هذه المجموعة الكاملة من الوحدات معاً؟
وكيف يمكننا ضمان أن العمل معا من هذه
الوحدات خالية تماما من المشاكل؟
لذلك هذا هو المكان الذي اختبار نهاية إلى نهاية وعلى طول الطريق،
اختبار التكامل يساعدنا على تغطية هذا النوع من السيناريوهات.
بالطبع، تلعب اختبارات الوحدة دورًا مهمًا في استراتيجية الاختبار الشاملة.
ولكن دون إجراء اختبارات نهاية إلى نهاية،
لا يمكننا أن نكون متأكدين تماما من أن تطبيقنا يعمل كما هو متوقع.
شيء واحد يجب أن أؤكد عليه هو أن اختبارات الوحدة سريعة
وسهلة جدا لتكرار ويمكن القيام به عدة مرات.
اختبارات التكامل واختبار نهاية إلى نهاية بطيئة، وبالتالي يتم استخدامها
فقط لماما للتأكد من أن التطبيق الخاص بك يعمل كما هو متوقع.
لذلك عندما ننظر إلى استراتيجية الاختبار الشاملة
لدينا، يمكننا أن ننظر إليها على أنها منظمة في شكل هرم.
في الجزء السفلي من الهرم، تحتل القاعدة بأكملها
وتشكل الأساس لاستراتيجية الاختبار الشاملة لدينا، هي اختبارات الوحدة.
وكما تعلمنا، فإن اختبارات الوحدة تسمح لنا باختبار الوحدات الفردية في عزلة،
والتأكد من أن منطقها
وطريقة عمل هذه الوحدات صحيحة.
ويمكن تكرار هذه الاختبارات في كثير من الأحيان.
وبالفعل، ينبغي أن تتكرر بشكل متكرر لضمان
أداء الوحدات الفردية كما هو متوقع.
وبطبيعة الحال، على المستوى الثاني من هذه الاستراتيجية ستكون اختبارات التكامل.
كيف تعمل مجموعة صغيرة من الوحدات معا في
تنفيذ كل ما يلزم القيام به من قبل تلك المجموعة من الوحدات?
لذلك ربما يمكننا اختبار مكون جنبا
إلى جنب مع خدماته لمعرفة كيف يحدث تدفق المعلومات بينهما.
ولكن في الجزء العلوي من هذا الهرم هو نهاية إلى نهاية الاختبارات حيث
ننظر إلى التطبيق العام.
ومدى أداء التطبيق العام
وتلبية متطلباته المتوقعة.
هذا هو المكان الذي نرى فيه استخدام الاختبارات من طرف إلى طرف.
كما قد تتوقع بالفعل من خلال هذا الرسم البياني، الاختبارات من نهاية إلى نهاية بطيئة.
وهكذا نحن لا نجري اختبارات نهاية إلى نهاية في كثير من الأحيان، بدلا من ذلك،
وحدة اختبار تشكل الاستراتيجية الأساسية لاختبارنا من تطبيق الزاوي لدينا.
تساهم الاختبارات الشاملة في الصورة العامة، ولكنها لا تتم
بشكل متكرر، ولكنها لا تزال تشكل جزءًا أساسيًا من استراتيجية الاختبار الخاصة بنا.
فكيف نقوم بإجراء الاختبارات من نهاية إلى نهاية؟
دعونا نتحدث بإيجاز عن الأدوات المتوفرة لنا.
يتم
دعم بيئة الاختبار الزاوي للاختبارات من طرف إلى طرف بواسطة أداة تسمى المنقلة.
من يقول أن المهووسين ليس لديهم حس الدعابة؟
منقلة، الزاوي، هناك تذهب.
فما هو بالضبط منقلة؟
المنقلة هي، كما قد تتوقع، برنامج عقدة.
لذلك هذا يمكننا من إجراء اختبارات نهاية إلى نهاية.
لذلك المنقلة يدير الاختبارات ضد التطبيق الخاص بك.
لذلك المنقلة تحميل التطبيق الخاص بك في متصفح ويتفاعل مع
التطبيق تماما مثل المستخدم الحقيقي سوف تتفاعل مع التطبيق الخاص بك.
لذلك نحن نبحث في التفاعل مع التطبيق الخاص بك،
على الرغم من برمجيا، ولكن تنفيذ نوع العمليات التي
سيقوم بها المستخدم النموذجي مثل النقر على الروابط، وملء النماذج.
إرسال النماذج، والانتقال إلى أجزاء مختلفة من التطبيق الخاص بك وهلم جرا.
لذلك هذا هو المكان الذي يستفيد المنقلة من استخدام WebDriver للتحكم
في المتصفحات التي يمكن إجراء الاختبار عليها.
ويسمى أحد إطار التطبيق هذا باسم إطار السيلينيوم،
والذي يستخدم لإجراء الاختبار الآلي داخل المتصفحات.
إذا كنت تستخدم Chrome كجزء من استراتيجية الاختبار أو Firefox،
فيمكنك استخدام ما يسمى بالاتصال المباشر.
هذا متاح من خلال منقلة للاتصال مباشرة بهذه المتصفحات
وإجراء الاختبارات داخل تلك المتصفحات.
الآن، الاختبارات نفسها تستفيد من إطار التعديل
للتعبير عن الاختبار.
لذلك لا تزال ترى المستخدم يصف int
وقبل كل ما رأيته مع اختبارات الوحدة.
باستثناء أنه الآن، سنقوم بالاستفادة من دعم المنقلة
لتكون قادرة على توليد تفاعلات حقيقية مثل المستخدم مع
تطبيقنا باستخدام التعليمات البرمجية.
وهذا هو ما سنتعلمه في التمرين الذي يتبع هذه
المحاضرة بالذات.
سوف نستفيد من المنقلة ونكتب استراتيجياتنا للاختبار من طرف إلى طرف.
وبالطبع، استفد من دعم Angular CLI
لإجراء اختبارات نهاية إلى نهاية في التمرين الذي يتبع هذه المحاضرة.
[ موسيقى]