در این مطلب، ویدئو توسعه آزمایش محور در پایتون // قدرت بازتاب دهنده قرمز-سبز با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:15:09
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:02,000
ایده اصلی توسعه مبتنی بر آزمایش
2
00:00:02,000 –> 00:00:04,080
این است که شما تست های خود را قبل از
3
00:00:04,080 –> 00:00:06,000
نوشتن کد واقعی بنویسید امروز به
4
00:00:06,000 –> 00:00:07,680
شما نشان خواهم داد که چگونه کار می کند و چه
5
00:00:07,680 –> 00:00:09,519
فوایدی دارد، اما همچنین
6
00:00:09,519 –> 00:00:11,360
مواردی وجود دارد که باید مراقب آنها
7
00:00:11,360 –> 00:00:12,960
باشید. در اینجا جدید هستید و می خواهید
8
00:00:12,960 –> 00:00:14,719
توسعه دهنده نرم افزار بهتری
9
00:00:14,719 –> 00:00:16,720
شوید به طور کلی درک عمیق تری از برنامه نویسی به دست
10
00:00:16,720 –> 00:00:18,720
آورید، اکنون با مشترک شدن و زدن
11
00:00:18,720 –> 00:00:20,960
زنگ شروع کنید تا چیزی را از دست ندهید در این
12
00:00:20,960 –> 00:00:23,039
مثال ما یک کلاس کارمند داریم
13
00:00:23,039 –> 00:00:25,680
که نام و شناسه و تعدادی دارد. فیلدهای
14
00:00:25,680 –> 00:00:28,720
مربوط به پرداختها من از نوع جریان
15
00:00:28,720 –> 00:00:30,400
برای پرداختها استفاده کردم، فکر میکنم معمولاً در یک
16
00:00:30,400 –> 00:00:31,920
محیط تولیدی از آن استفاده نمیکنید،
17
00:00:31,920 –> 00:00:33,600
زیرا به اندازه کافی دقیق نیست
18
00:00:33,600 –> 00:00:36,079
، احتمالاً از اعشار یا int یا
19
00:00:36,079 –> 00:00:38,239
چیزی شبیه به آن استفاده میکنید، بنابراین در کنار نرخهای پرداخت
20
00:00:38,239 –> 00:00:39,840
، ساعتهایی کار میشود
21
00:00:39,840 –> 00:00:41,680
هزینه ثابت کارفرما
22
00:00:41,680 –> 00:00:43,600
که آیا کارمند کمیسیون
23
00:00:43,600 –> 00:00:44,399
دارد،
24
00:00:44,399 –> 00:00:46,559
کمیسیون چقدر است و
25
00:00:46,559 –> 00:00:48,960
کارمند چند قرارداد دارد و سپس یک
26
00:00:48,960 –> 00:00:51,760
روش پرداخت محاسبه وجود دارد، بنابراین می توانید تصور
27
00:00:51,760 –> 00:00:54,320
کنید که نوعی hr sy دارید. stem
28
00:00:54,320 –> 00:00:56,960
که این روش را برای هر کارمند فراخوانی میکند
29
00:00:56,960 –> 00:00:58,800
و سپس محاسبه میکند که چقدر
30
00:00:58,800 –> 00:01:00,960
باید به کارمند پرداخت شود، بنابراین من
31
00:01:00,960 –> 00:01:03,039
هنوز محاسبه پرداخت را پیادهسازی نکردهام، بعداً این کار را انجام
32
00:01:03,039 –> 00:01:05,280
میدهیم و روند
33
00:01:05,280 –> 00:01:07,520
توسعه مبتنی بر تست توسعه مبتنی بر تست
34
00:01:07,520 –> 00:01:10,400
یا tdd را دنبال میکنیم. اصطلاحی که در
35
00:01:10,400 –> 00:01:13,200
سال 2002 توسط کنت بک در کتاب
36
00:01:13,200 –> 00:01:15,840
توسعه مبتنی بر آزمایش به عنوان مثال ابداع شد،
37
00:01:15,840 –> 00:01:17,280
من پیوندی به آن کتاب در شرح زیر قرار می دهم
38
00:01:17,280 –> 00:01:19,200
39
00:01:19,200 –> 00:01:22,159
توسعه آزمایش محور شامل پنج
40
00:01:22,159 –> 00:01:24,799
مرحله است. مرحله اول این است که وقتی
41
00:01:24,799 –> 00:01:26,240
یک ویژگی جدید را اضافه می کنید، تست هایی را می نویسید. اساساً
42
00:01:26,240 –> 00:01:28,000
با نوشتن تستهایی شروع کنید که فقط در
43
00:01:28,000 –> 00:01:30,400
صورت برآورده شدن مشخصات ویژگی انجام میشوند
44
00:01:30,400 –> 00:01:31,920
و این در واقع یک
45
00:01:31,920 –> 00:01:33,840
مزیت بسیار مهم توسعه مبتنی بر آزمایش است
46
00:01:33,840 –> 00:01:35,920
که شما را مجبور
47
00:01:35,920 –> 00:01:37,840
میکند قبل از شروع به ساختن چیزی در مورد الزامات فکر کنید.
48
00:01:37,840 –> 00:01:39,520
مرحله دوم
49
00:01:39,520 –> 00:01:41,680
در واقع اجرای آن تستها است. و
50
00:01:41,680 –> 00:01:44,079
مطمئن شوید که همه آنها شکست می خورند، مهم است
51
00:01:44,079 –> 00:01:46,159
که این تست ها ناموفق باشند، زیرا می
52
00:01:46,159 –> 00:01:47,520
خواهید بررسی کنید که واقعاً
53
00:01:47,520 –> 00:01:49,439
چیز جدیدی اضافه می کنید و این تست ها درست هستند
54
00:01:49,439 –> 00:01:51,759
تست صحیح آن قسمت مرحله سوم
55
00:01:51,759 –> 00:01:54,320
نوشتن ساده ترین کد است تا
56
00:01:54,320 –> 00:01:56,399
این تست ها با
57
00:01:56,399 –> 00:01:57,840
موفقیت انجام شود، لازم نیست در این مرحله کامل باشد،
58
00:01:57,840 –> 00:02:00,320
فقط مطمئن شوید که
59
00:02:00,320 –> 00:02:02,000
به مشخصاتی که
60
00:02:02,000 –> 00:02:04,640
قرار است بعداً در مرحله چهارم پاک کنید این است
61
00:02:04,640 –> 00:02:07,040
که مطمئن شوید که همه آزمایشها از
62
00:02:07,040 –> 00:02:09,598
جمله تستهای قدیمیتری که دارید انجام میشوند
63
00:02:09,598 –> 00:02:12,000
، این اطمینان میدهد که ویژگی جدید
64
00:02:12,000 –> 00:02:13,920
به مشخصات پایبند
65
00:02:13,920 –> 00:02:16,319
است و چیزهای دیگر را خراب نمیکند و سپس
66
00:02:16,319 –> 00:02:19,040
مرحله پنجم بازسازی و
67
00:02:19,040 –> 00:02:20,000
بهبود کد است
68
00:02:20,000 –> 00:02:22,319
در حالی که شما آن را دارید. مهار تست در حال اجرا است،
69
00:02:22,319 –> 00:02:24,319
بنابراین مطمئن شوید که در
70
00:02:24,319 –> 00:02:26,239
حین انجام این کار، همیشه تستهای موفقی دارید، بنابراین
71
00:02:26,239 –> 00:02:28,640
این فرآیند اصلی توسعه مبتنی بر آزمایش است
72
00:02:28,640 –> 00:02:30,720
و میتوانید این
73
00:02:30,720 –> 00:02:32,720
چرخه نوشتن تستهای جدید را تکرار کنید و مطمئن شوید
74
00:02:32,720 –> 00:02:34,720
که کد را نمینویسند و مطمئن شوید که
75
00:02:34,720 –> 00:02:36,959
آزمون موفق میشود. و سپس بارها و
76
00:02:36,959 –> 00:02:38,560
بارها اصلاح کنید و اگر در یک
77
00:02:38,560 –> 00:02:40,160
محیط چابک کار می کنید، باید این کار را در
78
00:02:40,160 –> 00:02:42,720
مراحل کوچک افزایشی انجام دهید و
79
00:02:42,720 –> 00:02:45,280
اغلب فرآیند نوشتن
80
00:02:45,280 –> 00:02:47,040
تست های شکست خورده را انجام دهید.
81
00:02:47,040 –> 00:02:49,200
سپس کدی را بنویسید که آن
82
00:02:49,200 –> 00:02:51,760
مسیرهای آزمایشی را ایجاد می کند و سپس دوباره سازی
83
00:02:51,760 –> 00:02:54,000
کد برای بهبود آن به نام refactor سبز قرمز نیز نامیده می شود،
84
00:02:54,000 –> 00:02:57,040
بنابراین بیایید آن را در
85
00:02:57,040 –> 00:02:59,519
مثال خود اعمال کنیم و ببینیم چگونه کار می کند، من
86
00:02:59,519 –> 00:03:02,480
قبلاً یک ساختار اساسی از
87
00:03:02,480 –> 00:03:04,159
آزمون ایجاد کرده ام در این
88
00:03:04,159 –> 00:03:07,200
مثال خاص، یک
89
00:03:07,200 –> 00:03:09,920
کلاس پرداخت محاسبه کارمند آزمایشی وجود دارد که هدف
90
00:03:09,920 –> 00:03:11,840
آن آزمایش روش پرداخت محاسبه
91
00:03:11,840 –> 00:03:13,840
کلاس کارمند است، در حال حاضر سه
92
00:03:13,840 –> 00:03:15,920
تست در آنجا وجود دارد که آزمایش میکند
93
00:03:15,920 –> 00:03:18,239
پرداخت یک دسته شناور را برمیگرداند که
94
00:03:18,239 –> 00:03:20,239
پرداخت به درستی محاسبه شده است. اگر
95
00:03:20,239 –> 00:03:22,560
کمیسیون وجود نداشته باشد و ساعت کار نشده باشد و
96
00:03:22,560 –> 00:03:25,200
یکی اگر 10 ساعت کار شده باشد و
97
00:03:25,200 –> 00:03:26,319
کمیسیون
98
00:03:26,319 –> 00:03:29,200
وجود نداشته باشد، یک روش راه اندازی وجود دارد که یک دستگاه تست ایجاد می کند
99
00:03:29,200 –> 00:03:31,920
که اساساً داده
100
00:03:31,920 –> 00:03:34,720
هایی است که آزمون در این مورد استفاده می کند، هر
101
00:03:34,720 –> 00:03:37,680
آزمون به یک نمونه کارمند نیاز دارد، اکنون
102
00:03:37,680 –> 00:03:39,680
می توانید همچنین این نمونه کارمند را
103
00:03:39,680 –> 00:03:42,159
به عنوان بخشی از آزمایش ایجاد کنید، اما روش راهاندازی
104
00:03:42,159 –> 00:03:43,760
روش خوبی برای کمی
105
00:03:43,760 –> 00:03:46,319
مختصرتر کردن آن در کنار راهاندازی است
106
00:03:46,319 –> 00:03:48,319
، در صورت نیاز به پاکسازی نیز از بین میرود. چیزهایی که
107
00:03:48,319 –> 00:03:50,000
پس از اجرای هر آزمایش انجام می شود، به عنوان مثال،
108
00:03:50,000 –> 00:03:51,840
ممکن است فایل های آزمایشی تولید شده باشد که
109
00:03:51,840 –> 00:03:53,840
باید آنها را حذف کنید یا اتصال پایگاه داده ای
110
00:03:53,840 –> 00:03:55,599
وجود دارد که باید مواردی
111
00:03:55,599 –> 00:03:57,680
مانند آن را ببندید، تنظیمات به یاد داشته باشید که
112
00:03:57,680 –> 00:04:00,080
قبل از هر آزمایش فراخوانی می شود، بنابراین در این مورد
113
00:04:00,080 –> 00:04:01,439
ما سه تست داریم، بنابراین این کار باید انجام شود.
114
00:04:01,439 –> 00:04:03,519
برای هر آزمون سه بار یک بار فراخوانی شود،
115
00:04:03,519 –> 00:04:06,560
بنابراین من از روشهای ادعای
116
00:04:06,560 –> 00:04:08,720
کتابخانه آزمون واحد برای بررسی موارد
117
00:04:08,720 –> 00:04:10,640
استفاده میکنم، به عنوان مثال در اینجا استفاده از عنوان مثالی است
118
00:04:10,640 –> 00:04:12,159
برای بررسی اینکه نتیجه محاسبه
119
00:04:12,159 –> 00:04:13,599
پرداخت شناوری است
120
00:04:13,599 –> 00:04:16,399
که من از آن تقریباً برابر است.
121
00:04:16,399 –> 00:04:19,120
پرداخت را با یک ثابت مقایسه کنید، دلیل استفاده از
122
00:04:19,120 –> 00:04:20,720
تقریباً برابر این است که برخی از
123
00:04:20,720 –> 00:04:22,320
خطاهای گرد کردن با شناورها وجود دارد و
124
00:04:22,320 –> 00:04:24,800
من نمیخواهم آزمایشم به دلیل یک
125
00:04:24,800 –> 00:04:26,880
خطای گرد کردن ناموفق باشد، بنابراین دوباره در یک
126
00:04:26,880 –> 00:04:28,880
محیط تولید، احتمالاً از اعشار استفاده میکنید
127
00:04:28,880 –> 00:04:31,680
اما برای سادگی، من از float در اینجا استفاده میکنم،
128
00:04:31,680 –> 00:04:34,320
بنابراین دو تست اول به سادگی از
129
00:04:34,320 –> 00:04:36,240
شیء کارمندی استفاده میکنند که با
130
00:04:36,240 –> 00:04:38,160
متد راهاندازی در تست سوم ایجاد شده است، ما
131
00:04:38,160 –> 00:04:39,840
آن را کمی تغییر میدهیم زیرا
132
00:04:39,840 –> 00:04:41,919
ساعتهای کار را تنظیم میکنیم و سپس d پس از
133
00:04:41,919 –> 00:04:43,759
بررسی،
134
00:04:43,759 –> 00:04:45,919
بیایید چند تست دیگر را در اینجا اضافه کنیم، یکی از مواردی که میخواهم آزمایش کنم این
135
00:04:45,919 –> 00:04:47,840
است که اگر کارمند کمیسیون دریافت میکند،
136
00:04:47,840 –> 00:04:49,520
این به درستی محاسبه میشود،
137
00:04:49,520 –> 00:04:52,520
138
00:04:59,919 –> 00:05:02,720
بنابراین ما فرض میکنیم
139
00:05:02,720 –> 00:05:04,960
که کارمند 10 قرارداد داشته و 10 ساعت
140
00:05:04,960 –> 00:05:07,960
کار کرده است،
141
00:05:10,240 –> 00:05:12,800
پس بیایید تعیین کنیم.
142
00:05:12,800 –> 00:05:16,000
ارزش قراردادها به 10 رسید
143
00:05:16,000 –> 00:05:18,639
و سپس ما فرض می کنیم که
144
00:05:18,639 –> 00:05:20,880
پرداخت به طور پیش فرض کمیسیون
145
00:05:20,880 –> 00:05:23,440
100 است، بنابراین ما انتظار داریم که این مبلغ
146
00:05:23,440 –> 00:05:24,960
سه هزار باشد
147
00:05:24,960 –> 00:05:26,880
و بیایید آزمایش دیگری اضافه کنیم تا مطمئن شویم
148
00:05:26,880 –> 00:05:27,680
که
149
00:05:27,680 –> 00:05:30,400
غیرفعال کردن کمیسیون ها نیز همانطور که
150
00:05:30,400 –> 00:05:33,400
انتظار می رود کار
151
00:05:45,840 –> 00:05:47,280
می کند. دریافت می کنیم و سپس
152
00:05:47,280 –> 00:05:49,199
مقدار مورد
153
00:05:49,199 –> 00:05:52,080
انتظار 2000 است. بنابراین اکنون تعداد کمی تست خوب داریم،
154
00:05:52,080 –> 00:05:54,000
بنابراین این اولین
155
00:05:54,000 –> 00:05:56,639
گام توسعه آزمایش محور بود
156
00:05:56,639 –> 00:05:58,800
نوشتن تست مرحله دوم
157
00:05:58,800 –> 00:06:00,720
اجرای تست ها است، بنابراین بیایید این تست ها را اجرا کنیم
158
00:06:00,720 –> 00:06:02,800
و ببینیم چه اتفاقی می افتد.
159
00:06:02,800 –> 00:06:05,840
اکنون میبینیم که پنج خطا دریافت میکنیم که همه
160
00:06:05,840 –> 00:06:08,160
آزمایشها با شکست مواجه میشوند و این مهم است
161
00:06:08,160 –> 00:06:10,080
که بررسی کنیم آیا آزمایشهایی
162
00:06:10,080 –> 00:06:11,759
که اضافه میکنیم در واقع در حال
163
00:06:11,759 –> 00:06:14,000
آزمایش عملکرد جدید هستند و اکنون مرحله بعدی است
164
00:06:14,000 –> 00:06:16,080
و این زمانی است که ما در حال حرکت هستیم o
165
00:06:16,080 –> 00:06:18,479
قسمت سبز Refactor سبز قرمز این است که
166
00:06:18,479 –> 00:06:20,639
ما شروع به پیاده سازی متد در
167
00:06:20,639 –> 00:06:22,720
کارمند می کنیم و سپس خواهید دید که مرحله
168
00:06:22,720 –> 00:06:25,199
به مرحله این تست ها می گذرد بنابراین
169
00:06:25,199 –> 00:06:27,039
بیایید پیاده سازی روش پرداخت محاسبه را شروع
170
00:06:27,039 –> 00:06:30,000
کنیم تا این خطای اجرا نشده را حذف کنم.
171
00:06:30,000 –> 00:06:31,919
و سپس اجازه دهید شروع به
172
00:06:31,919 –> 00:06:34,639
نوشتن کد کنیم، بنابراین اولین قدم بیایید
173
00:06:34,639 –> 00:06:37,919
پرداخت را محاسبه کنیم و این به سادگی
174
00:06:37,919 –> 00:06:39,600
نرخ پرداختی است
175
00:06:39,600 –> 00:06:41,680
176
00:06:41,680 –> 00:06:43,280
که در ساعات کار انجام شده است
177
00:06:43,280 –> 00:06:46,240
و فعلاً بیایید فقط پرداخت را برگردانیم
178
00:06:46,240 –> 00:06:47,759
تا کامل نباشد زیرا ما به
179
00:06:47,759 –> 00:06:49,840
کمیسیون ها رسیدگی نمی کنیم.
180
00:06:49,840 –> 00:06:52,160
هزینه کارفرما را در نظر نمی
181
00:06:52,160 –> 00:06:53,759
گیریم، اما بیایید ببینیم وقتی دوباره آزمون را اجرا می کنیم چه اتفاقی می افتد،
182
00:06:53,759 –> 00:06:56,000
بنابراین اکنون می بینید که برخی از
183
00:06:56,000 –> 00:06:58,080
تست ها شروع به گذراندن می کنند، ما
184
00:06:58,080 –> 00:07:00,479
به جای پنج مورد فقط چهار شکست داریم، بیایید
185
00:07:00,479 –> 00:07:03,759
هزینه کارفرما را اضافه کنیم
186
00:07:03,759 –> 00:07:06,240
و دوباره آزمایش را اجرا
187
00:07:06,240 –> 00:07:09,360
کنیم. ما فقط یک شکست داریم
188
00:07:09,360 –> 00:07:10,880
و البته چیزی که هنوز وجود ندارد
189
00:07:10,880 –> 00:07:12,720
کل موارد کمیسیون است، بنابراین بیایید یک خط اضافه کنیم
190
00:07:12,720 –> 00:07:17,080
که اگر کمیسیون وجود دارد،
191
00:07:18,000 –> 00:07:21,599
آن
192
00:07:22,240 –> 00:07:24,319
زمان کمیسیون زمان پایان قراردادها را اضافه می
193
00:07:24,319 –> 00:07:26,000
کنیم
194
00:07:26,000 –> 00:07:28,400
و اکنون اجازه دهید به تست برگردید
195
00:07:28,400 –> 00:07:31,840
و اکنون همه تست ها قبول می شوند، بنابراین اکنون در
196
00:07:31,840 –> 00:07:35,919
فاز سبز رنگ سبز قرمز هستیم،
197
00:07:35,919 –> 00:07:37,840
حالا که تست ها رد می شوند،
198
00:07:37,840 –> 00:07:39,199
محیطی دارید که مطمئن هستید
199
00:07:39,199 –> 00:07:41,759
کد شما به مشخصات پایبند است و
200
00:07:41,759 –> 00:07:43,840
می توانید در اطرا