1
00:00:00,000 --> 00:00:04,307
[MUSIC]

2
00:00:04,307 --> 00:00:09,895
في المحاضرة السابقة والتمرين اللذين أعقبا المحاضرة،

3
00:00:09,895 --> 00:00:14,330
درسنا استخدام اختبارات الوحدة في Angular.

4
00:00:14,330 --> 00:00:18,920
لقد رأينا كيف يمكن اختبار الأجزاء المختلفة من تطبيقنا الزاوي، والمكونات

5
00:00:18,920 --> 00:00:26,420
، والخدمات، والتوجيهات، والأنابيب باستخدام اختبارات الوحدة.

6
00:00:26,420 --> 00:00:27,000
ولكن بالطبع،

7
00:00:27,000 --> 00:00:32,550
لا تكشف اختبارات الوحدة عن كل شيء عن التفاعل بين المكونات.

8
00:00:32,550 --> 00:00:37,090
هذا هو المكان الذي تمكننا فيه استراتيجيات الاختبار من نهاية إلى نهاية

9
00:00:37,090 --> 00:00:42,480
من رؤية التطبيق بأكمله يعمل كوحدة واحدة.

10
00:00:42,480 --> 00:00:49,200
لذلك في هذه المحاضرة، سوف ندرس استخدام الاختبارات من البداية إلى النهاية

11
00:00:49,200 --> 00:00:54,950
والدور الذي تلعبه في استراتيجية الاختبار الشاملة لتطبيقات Angular الخاصة بنا.

12
00:00:54,950 --> 00:01:01,592
في التمرين التالي، سننظر بإيجاز في كيفية إجراء

13
00:01:01,592 --> 00:01:06,160
اختبار من طرف إلى طرف لتطبيق Angular الخاص بنا، باستخدام أداة تسمى المنقلة.

14
00:01:08,110 --> 00:01:13,710
وكما تعلمنا بالفعل في المحاضرة السابقة، فإن اختبارات الوحدة

15
00:01:13,710 --> 00:01:19,650
توفر لنا فرصة رائعة لاختبار وحداتنا بمعزل عن بعضها البعض.

16
00:01:19,650 --> 00:01:25,105
التأكد من أن وحداتنا تؤدي ما يتوقع أن تقوم به،

17
00:01:25,105 --> 00:01:29,446
منطقها صحيح، والتفاعل بين المكون

18
00:01:29,446 --> 00:01:33,720
وقالبه راسخ.

19
00:01:33,720 --> 00:01:38,230
ولكن بالطبع، لا

20
00:01:38,230 --> 00:01:43,720
تكمل اختبارات الوحدة الصورة الكاملة لكيفية عمل تطبيق Angular النموذجي.

21
00:01:43,720 --> 00:01:47,807
ليس لديك وحدات فردية تعمل في عزلة.

22
00:01:47,807 --> 00:01:51,293
بدلاً من ذلك، تتفاعل المكونات مع الخدمات.

23
00:01:51,293 --> 00:01:53,573
قد تستخدم المكونات الأنواع.

24
00:01:53,573 --> 00:01:58,503
الخدمات، بدورها، سوف تتفاعل مع الخلفية لجلب البيانات.

25
00:01:58,503 --> 00:02:02,300
ثم المكون نفسه سيكون مسؤولا عن

26
00:02:02,300 --> 00:02:06,670
تقديم وجهات النظر باستخدام قوالب للمكون.

27
00:02:06,670 --> 00:02:13,686
إذاً كيف تعمل هذه المجموعة الكاملة من الوحدات معاً؟

28
00:02:13,686 --> 00:02:18,485
وكيف يمكننا ضمان أن العمل معا من هذه

29
00:02:18,485 --> 00:02:22,202
الوحدات خالية تماما من المشاكل؟

30
00:02:22,202 --> 00:02:26,931
لذلك هذا هو المكان الذي اختبار نهاية إلى نهاية وعلى طول الطريق،

31
00:02:26,931 --> 00:02:32,780
اختبار التكامل يساعدنا على تغطية هذا النوع من السيناريوهات.

32
00:02:32,780 --> 00:02:39,190
بالطبع، تلعب اختبارات الوحدة دورًا مهمًا في استراتيجية الاختبار الشاملة.

33
00:02:39,190 --> 00:02:42,133
ولكن دون إجراء اختبارات نهاية إلى نهاية،

34
00:02:42,133 --> 00:02:47,852
لا يمكننا أن نكون متأكدين تماما من أن تطبيقنا يعمل كما هو متوقع.

35
00:02:47,852 --> 00:02:52,697
شيء واحد يجب أن أؤكد عليه هو أن اختبارات الوحدة سريعة

36
00:02:52,697 --> 00:02:56,790
وسهلة جدا لتكرار ويمكن القيام به عدة مرات.

37
00:02:56,790 --> 00:03:01,861
اختبارات التكامل واختبار نهاية إلى نهاية بطيئة، وبالتالي يتم استخدامها

38
00:03:01,861 --> 00:03:08,390
فقط لماما للتأكد من أن التطبيق الخاص بك يعمل كما هو متوقع.

39
00:03:08,390 --> 00:03:11,830
لذلك عندما ننظر إلى استراتيجية الاختبار الشاملة

40
00:03:11,830 --> 00:03:16,070
لدينا، يمكننا أن ننظر إليها على أنها منظمة في شكل هرم.

41
00:03:16,070 --> 00:03:19,940
في الجزء السفلي من الهرم، تحتل القاعدة بأكملها

42
00:03:19,940 --> 00:03:25,251
وتشكل الأساس لاستراتيجية الاختبار الشاملة لدينا، هي اختبارات الوحدة.

43
00:03:26,710 --> 00:03:31,790
وكما تعلمنا، فإن اختبارات الوحدة تسمح لنا باختبار الوحدات الفردية في عزلة،

44
00:03:31,790 --> 00:03:35,460
والتأكد من أن منطقها

45
00:03:35,460 --> 00:03:39,970
وطريقة عمل هذه الوحدات صحيحة.

46
00:03:39,970 --> 00:03:42,890
ويمكن تكرار هذه الاختبارات في كثير من الأحيان.

47
00:03:42,890 --> 00:03:48,040
وبالفعل، ينبغي أن تتكرر بشكل متكرر لضمان

48
00:03:48,040 --> 00:03:49,610
أداء الوحدات الفردية كما هو متوقع.

49
00:03:50,630 --> 00:03:57,850
وبطبيعة الحال، على المستوى الثاني من هذه الاستراتيجية ستكون اختبارات التكامل.

50
00:03:57,850 --> 00:04:02,600
كيف تعمل مجموعة صغيرة من الوحدات معا في

51
00:04:02,600 --> 00:04:07,680
تنفيذ كل ما يلزم القيام به من قبل تلك المجموعة من الوحدات?

52
00:04:07,680 --> 00:04:12,460
لذلك ربما يمكننا اختبار مكون جنبا

53
00:04:12,460 --> 00:04:17,730
إلى جنب مع خدماته لمعرفة كيف يحدث تدفق المعلومات بينهما.

54
00:04:17,730 --> 00:04:22,880
ولكن في الجزء العلوي من هذا الهرم هو نهاية إلى نهاية الاختبارات حيث

55
00:04:22,880 --> 00:04:25,320
ننظر إلى التطبيق العام.

56
00:04:25,320 --> 00:04:29,880
ومدى أداء التطبيق العام

57
00:04:29,880 --> 00:04:32,890
وتلبية متطلباته المتوقعة.

58
00:04:32,890 --> 00:04:36,990
هذا هو المكان الذي نرى فيه استخدام الاختبارات من طرف إلى طرف.

59
00:04:36,990 --> 00:04:42,680
كما قد تتوقع بالفعل من خلال هذا الرسم البياني، الاختبارات من نهاية إلى نهاية بطيئة.

60
00:04:42,680 --> 00:04:48,584
وهكذا نحن لا نجري اختبارات نهاية إلى نهاية في كثير من الأحيان، بدلا من ذلك،

61
00:04:48,584 --> 00:04:55,412
وحدة اختبار تشكل الاستراتيجية الأساسية لاختبارنا من تطبيق الزاوي لدينا.

62
00:04:55,412 --> 00:05:02,149
تساهم الاختبارات الشاملة في الصورة العامة، ولكنها لا تتم

63
00:05:02,149 --> 00:05:08,021
بشكل متكرر، ولكنها لا تزال تشكل جزءًا أساسيًا من استراتيجية الاختبار الخاصة بنا.

64
00:05:08,021 --> 00:05:10,852
فكيف نقوم بإجراء الاختبارات من نهاية إلى نهاية؟

65
00:05:10,852 --> 00:05:15,210
دعونا نتحدث بإيجاز عن الأدوات المتوفرة لنا.

66
00:05:15,210 --> 00:05:18,199
يتم

67
00:05:18,199 --> 00:05:23,740
دعم بيئة الاختبار الزاوي للاختبارات من طرف إلى طرف بواسطة أداة تسمى المنقلة.

68
00:05:23,740 --> 00:05:27,930
من يقول أن المهووسين ليس لديهم حس الدعابة؟

69
00:05:27,930 --> 00:05:30,950
منقلة، الزاوي، هناك تذهب.

70
00:05:30,950 --> 00:05:33,450
فما هو بالضبط منقلة؟

71
00:05:33,450 --> 00:05:37,500
المنقلة هي، كما قد تتوقع، برنامج عقدة.

72
00:05:37,500 --> 00:05:40,940
لذلك هذا يمكننا من إجراء اختبارات نهاية إلى نهاية.

73
00:05:40,940 --> 00:05:45,510
لذلك المنقلة يدير الاختبارات ضد التطبيق الخاص بك.

74
00:05:45,510 --> 00:05:49,800
لذلك المنقلة تحميل التطبيق الخاص بك في متصفح ويتفاعل مع

75
00:05:49,800 --> 00:05:54,570
التطبيق تماما مثل المستخدم الحقيقي سوف تتفاعل مع التطبيق الخاص بك.

76
00:05:54,570 --> 00:05:59,160
لذلك نحن نبحث في التفاعل مع التطبيق الخاص بك،

77
00:05:59,160 --> 00:06:03,410
على الرغم من برمجيا، ولكن تنفيذ نوع العمليات التي

78
00:06:03,410 --> 00:06:07,500
سيقوم بها المستخدم النموذجي مثل النقر على الروابط، وملء النماذج.

79
00:06:07,500 --> 00:06:13,110
إرسال النماذج، والانتقال إلى أجزاء مختلفة من التطبيق الخاص بك وهلم جرا.

80
00:06:13,110 --> 00:06:18,310
لذلك هذا هو المكان الذي يستفيد المنقلة من استخدام WebDriver للتحكم

81
00:06:18,310 --> 00:06:23,980
في المتصفحات التي يمكن إجراء الاختبار عليها.

82
00:06:23,980 --> 00:06:27,570
ويسمى أحد إطار التطبيق هذا باسم إطار السيلينيوم،

83
00:06:27,570 --> 00:06:31,720
والذي يستخدم لإجراء الاختبار الآلي داخل المتصفحات.

84
00:06:31,720 --> 00:06:36,021
إذا كنت تستخدم Chrome كجزء من استراتيجية الاختبار أو Firefox،

85
00:06:36,021 --> 00:06:39,119
فيمكنك استخدام ما يسمى بالاتصال المباشر.

86
00:06:39,119 --> 00:06:43,502
هذا متاح من خلال منقلة للاتصال مباشرة بهذه المتصفحات

87
00:06:43,502 --> 00:06:45,828
وإجراء الاختبارات داخل تلك المتصفحات.

88
00:06:45,828 --> 00:06:50,273
الآن، الاختبارات نفسها تستفيد من إطار التعديل

89
00:06:50,273 --> 00:06:51,790
للتعبير عن الاختبار.

90
00:06:51,790 --> 00:06:55,450
لذلك لا تزال ترى المستخدم يصف int

91
00:06:55,450 --> 00:06:58,810
وقبل كل ما رأيته مع اختبارات الوحدة.

92
00:06:58,810 --> 00:07:04,332
باستثناء أنه الآن، سنقوم بالاستفادة من دعم المنقلة

93
00:07:04,332 --> 00:07:09,119
لتكون قادرة على توليد تفاعلات حقيقية مثل المستخدم مع

94
00:07:09,119 --> 00:07:11,157
تطبيقنا باستخدام التعليمات البرمجية.

95
00:07:11,157 --> 00:07:15,363
وهذا هو ما سنتعلمه في التمرين الذي يتبع هذه

96
00:07:15,363 --> 00:07:15,979
المحاضرة بالذات.

97
00:07:15,979 --> 00:07:21,324
سوف نستفيد من المنقلة ونكتب استراتيجياتنا للاختبار من طرف إلى طرف.

98
00:07:21,324 --> 00:07:24,815
وبالطبع، استفد من دعم Angular CLI

99
00:07:24,815 --> 00:07:29,983
لإجراء اختبارات نهاية إلى نهاية في التمرين الذي يتبع هذه المحاضرة.

100
00:07:29,983 --> 00:07:32,969
[ موسيقى]