در این مطلب، ویدئو توسعه تست محور (TDD) در پایتون شماره 2 – ابتدا ادعا کنید و شکست تست را ببینید با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:20:49
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,700 –> 00:00:04,560
سلام، جیسون گورمن از کد
2
00:00:04,560 –> 00:00:06,890
Manship است که دومین مورد از سری ما در
3
00:00:06,890 –> 00:00:09,780
مورد توسعه مبتنی بر آزمایش برای
4
00:00:09,780 –> 00:00:11,969
برنامه نویسان پایتون است و اگر اولین ویدیو را از دست دادید
5
00:00:11,969 –> 00:00:15,150
که به سه مرحله
6
00:00:15,150 –> 00:00:18,600
اصلی چرخه توسعه مبتنی بر تست نگاه کردیم،
7
00:00:18,600 –> 00:00:20,039
یک تست شکست خورده را می نویسید.
8
00:00:20,039 –> 00:00:22,439
سادهترین کد برای قبولی در آن آزمون و سپس در
9
00:00:22,439 –> 00:00:25,140
صورت لزوم، کد
10
00:00:25,140 –> 00:00:26,970
را اصلاح کنید تا درک آن آسانتر شود و
11
00:00:26,970 –> 00:00:30,029
اگر
12
00:00:30,029 –> 00:00:31,410
اولین ویدیو را از دست دادید، اکیداً به
13
00:00:31,410 –> 00:00:32,700
شما توصیه میکنم که ابتدا به آن نگاه کنید.
14
00:00:32,700 –> 00:00:34,440
لینک در
15
00:00:34,440 –> 00:00:37,380
توضیحات زیر در این ویدیوی دوم
16
00:00:37,380 –> 00:00:39,420
من قصد دارم در مورد سه
17
00:00:39,420 –> 00:00:42,300
عادت صحبت کنم، اما به نظرم بسیار مفید است
18
00:00:42,300 –> 00:00:45,450
که وقتی TDD را انجام می دهید که آن را
19
00:00:45,450 –> 00:00:48,059
موثرتر و پایدارتر می کند
20
00:00:48,059 –> 00:00:49,350
اولین عادتی که قرار است داشته باشیم. نگاه کردن
21
00:00:49,350 –> 00:00:53,520
به این است که چرا فکر میکنم این ایده خوبی است که
22
00:00:53,520 –> 00:00:55,890
با نوشتن ادعای آزمون شروع
23
00:00:55,890 –> 00:00:58,829
کنیم و به تنظیم مجدد
24
00:00:58,829 –> 00:01:00,329
برگشتهایم عادت دومی که میخواهیم بررسی کنیم این است
25
00:01:00,329 –> 00:01:03,539
که چرا فکر میکنم اجرای آزمون ایده خوبی است
26
00:01:03,539 –> 00:01:05,430
و ببینید که در واقع
27
00:01:05,430 –> 00:01:08,520
قبل از اینکه شما موفق شوید شکست می خورد و سپس
28
00:01:08,520 –> 00:01:09,990
سومین عادتی که ما به آن می پردازیم این
29
00:01:09,990 –> 00:01:12,750
است که چند دلیل باید تست های
30
00:01:12,750 –> 00:01:14,430
ما برای شکست خوردن چند سوال
31
00:01:14,430 –> 00:01:17,159
باید بپرسند.
32
00:01:17,159 –> 00:01:19,470
وقتی تستهای شما
33
00:01:19,470 –> 00:01:22,400
فقط یک دلیل برای شکست خوردن دارند،
34
00:01:22,400 –> 00:01:24,180
من هر یک از این سه عادت را
35
00:01:24,180 –> 00:01:26,009
با یک مثال ساده نشان میدهم و در مورد
36
00:01:26,009 –> 00:01:30,299
اینکه چرا آنها را مفید یافتم صحبت میکنم، خوب حالا
37
00:01:30,299 –> 00:01:32,880
من از چارچوب تست واحد داخلی استفاده خواهم کرد
38
00:01:32,880 –> 00:01:35,070
که فقط
39
00:01:35,070 –> 00:01:38,070
تست واحد نامیده می شود و با آن ارسال می شود – بنابراین
40
00:01:38,070 –> 00:01:40,259
ما مجبور نیستیم چیزی را با استفاده از
41
00:01:40,259 –> 00:01:44,399
pip وارد کنیم و من قصد دارم
42
00:01:44,399 –> 00:01:47,250
برای یک کتابخانه دی وی دی تست بنویسم، بنابراین ایده این است که
43
00:01:47,250 –> 00:01:49,500
اعضای این کتابخانه یک
44
00:01:49,500 –> 00:01:52,049
کتابخانه جامعه است و آنها می توانند دیویدیهایی را که
45
00:01:52,049 –> 00:01:54,479
دیگر نمیخواهند داشته باشند را اهدا کنند، شاید
46
00:01:54,479 –> 00:01:55,890
بخواهند آنها را با سایر اعضای کتابخانه به اشتراک بگذارند
47
00:01:55,890 –> 00:01:58,530
و وقتی
48
00:01:58,530 –> 00:02:00,210
یک دیویدی اهدا میکنند، دو
49
00:02:00,210 –> 00:02:02,189
اتفاق باید بیفتد، اول اینکه آن
50
00:02:02,189 –> 00:02:04,049
فیلم باید به کاتالوگ اضافه شود.
51
00:02:04,049 –> 00:02:06,869
و سپس باید ثبت نام کنیم یک
52
00:02:06,869 –> 00:02:09,598
نسخه اجاره ای برای آن فیلم تا مردم بتوانند
53
00:02:09,598 –> 00:02:11,160
آن را قرض بگیرند، بنابراین دو مورد که باید
54
00:02:11,160 –> 00:02:13,890
اتفاق بیفتد، با نوشتن یک برنامه شروع می کنم به
55
00:02:13,890 –> 00:02:15,900
یاد داشته باشید که ابتدا یک تست مردودی می نویسیم
56
00:02:15,900 –> 00:02:18,630
، احتمالاً در ویدیو اول متوجه خواهید شد
57
00:02:18,630 –> 00:02:21,330
و من آن را قرار می دهم. در
58
00:02:21,330 –> 00:02:22,980
یک پوشه جداگانه از پوشه ریشه
59
00:02:22,980 –> 00:02:25,020
در یک پوشه آزمایشی، به طوری که تست های من
60
00:02:25,020 –> 00:02:26,850
از کد منبع جدا باشد که
61
00:02:26,850 –> 00:02:29,970
یکی دیگر از عادت های خوب برای ورود به آن است و
62
00:02:29,970 –> 00:02:32,490
من یک ویژگی کوچک در اینجا دارم که می توانم از آن
63
00:02:32,490 –> 00:02:35,580
در پایتون استفاده کنم که به طور خودکار
64
00:02:35,580 –> 00:02:38,580
یک تست تولید می کند. برای من فایل کنید پس بیایید از
65
00:02:38,580 –> 00:02:41,770
آن استفاده کنیم و بنابراین اینها
66
00:02:41,770 –> 00:02:43,180
شما
67
00:02:43,180 –> 00:02:45,879
آزمایش اهدای فیلم به کتابخانه ای هستند
68
00:02:45,879 –> 00:02:47,980
که برای آن تست ژنراتور است و خواهید دید،
69
00:02:47,980 –> 00:02:49,510
بگذارید فقط به این نکته اشاره کنیم که اگر
70
00:02:49,510 –> 00:02:52,629
با تست واحد آشنا نیستید، ما آن را وارد می کنیم
71
00:02:52,629 –> 00:02:54,340
که با پایتون ارسال می شود بنابراین ما
72
00:02:54,340 –> 00:02:56,080
قبلاً آن را دریافت کردهایم، فقط باید آن را برای
73
00:02:56,080 –> 00:02:58,959
فایل خود در اینجا وارد کنیم، میبینید
74
00:02:58,959 –> 00:03:00,549
که پایین را اینجا یادداشت میکنید و من
75
00:03:00,549 –> 00:03:02,349
در مثال اول از آن استفاده نکردم،
76
00:03:02,349 –> 00:03:06,129
اما اینجا برای من تولید شده است.
77
00:03:06,129 –> 00:03:07,599
یک روش اصلی در پایین وجود دارد برای
78
00:03:07,599 –> 00:03:09,579
این فایل به طوری که من بتوانم تمام
79
00:03:09,579 –> 00:03:11,769
تست ها را فقط با اجرای این فایل با استفاده از پایتون اجرا کنم،
80
00:03:11,769 –> 00:03:13,989
اما نیازی نیست
81
00:03:13,989 –> 00:03:14,890
نگران این موضوع باشیم، زیرا در حال حاضر
82
00:03:14,890 –> 00:03:17,799
از IDE برای اجرای تست های خود استفاده خواهیم کرد.
83
00:03:17,799 –> 00:03:19,959
این تست
84
00:03:19,959 –> 00:03:21,519
فقط با یک کلاس که
85
00:03:21,519 –> 00:03:24,549
از test case به ارث میرسد ثابت میشود، بنابراین واحد تست میکند که
86
00:03:24,549 –> 00:03:26,920
دونده تست میداند که این کلاس
87
00:03:26,920 –> 00:03:30,280
دارای روشهای تست در آن است و بیایید
88
00:03:30,280 –> 00:03:34,859
نام آن را تست فیلم سینمایی نامی خوب و
89
00:03:34,859 –> 00:03:37,150
آسان و یک روش تست را
90
00:03:37,150 –> 00:03:39,099
یک روش بنامیم. که حاوی
91
00:03:39,099 –> 00:03:41,859
کد آزمون ما خواهد بود، این فقط یک روش ساده است
92
00:03:41,859 –> 00:03:43,659
که با آزمون در مدرسه شروع می شود،
93
00:03:43,659 –> 00:03:50,230
بنابراین یک فیلم را تست کنید، ما در یک دقیقه صحبت خواهیم کرد
94
00:03:50,230 –> 00:03:51,760
که چرا احتمالاً نام خوبی
95
00:03:51,760 –> 00:03:54,970
نیست، اما به آن عادت
96
00:03:54,970 –> 00:03:58,629
شماره یک خواهیم رسید. در مثال اول و
97
00:03:58,629 –> 00:04:01,540
بسیاری از توسعه دهندگان این کار را انجام می دهند و Anytus
98
00:04:01,540 –> 00:04:03,040
به هیچ وجه بدترین کاری نیست که می توانید انجام دهید،
99
00:04:03,040 –> 00:04:04,810
اما من انجام
100
00:04:04,810 –> 00:04:06,790
آن را برعکس در اولین
101
00:04:06,790 –> 00:04:10,299
مثال که با نوشتن تنظیمات
102
00:04:10,299 –> 00:04:10,930
برای تست خود شروع کردم مفید
103
00:04:10,930 –> 00:04:13,690
بود. ما فیلمی گرفتیم
104
00:04:13,690 –> 00:04:17,340
که برای تس من مینویسد در ابتدا
105
00:04:18,540 –> 00:04:22,170
و به سمت این ادعا حرکت میکنم
106
00:04:22,170 –> 00:04:25,380
، خطر انجام آن این است که در
107
00:04:25,380 –> 00:04:28,260
نهایت با تنظیمات اشتباهی مواجه میشوید
108
00:04:28,260 –> 00:04:30,120
، یعنی آنچه را که میخواهید برای پرسیدن
109
00:04:30,120 –> 00:04:33,720
سؤالی که میخواهید بپرسید
110
00:04:33,720 –> 00:04:35,640
، در مورد توصیف تستهای TDD دریافت نکنید. کد چه کاری
111
00:04:35,640 –> 00:04:38,610
باید انجام دهد، بیایید با
112
00:04:38,610 –> 00:04:40,380
113
00:04:40,380 –> 00:04:43,110
سوالی که میخواهیم بپرسیم شروع کنیم، بنابراین ابتدا یک
114
00:04:43,110 –> 00:04:45,490
ادعا مینویسیم
115
00:04:45,490 –> 00:04:48,280
و میخواهیم تنظیم کنیم که تمام
116
00:04:48,280 –> 00:04:52,139
فیلم ما در کتابخانه باشد،
117
00:04:52,330 –> 00:04:54,490
بنابراین بیایید تصور کنیم کتابخانه دارای یک
118
00:04:54,490 –> 00:04:57,030
کاتالوگ بسیار
119
00:04:57,400 –> 00:05:00,020
خوب است و اکنون ما به
120
00:05:00,020 –> 00:05:02,350
عقب از ادعای تست کار
121
00:05:02,350 –> 00:05:06,260
می کنیم و تنظیمات مورد نیاز خود را ایجاد می کنیم تا
122
00:05:06,260 –> 00:05:09,340
بتوانیم این تست را به خوبی اجرا کنیم،
123
00:05:09,879 –> 00:05:12,759
بنابراین هیچ فیلم کلاسی وجود ندارد، بنابراین
124
00:05:12,759 –> 00:05:18,149
بیایید ایجاد کنیم که اکنون به یک کتابخانه نیاز داریم.
125
00:05:21,830 –> 00:05:25,500
ما می توانیم آن را
126
00:05:25,500 –> 00:05:27,960
ایجاد کنیم تا بتوانید ببینید که ما در
127
00:05:27,960 –> 00:05:31,940
حال بازگشت به بخش هایی هستیم
128
00:05:33,580 –> 00:05:36,170
که فیلم را اهدا می کنیم و کتابخانه
129
00:05:36,170 –> 00:05:38,230
ما به شما نیاز دارد.
130
00:05:38,230 –> 00:05:40,290
131
00:05:40,560 –> 00:05:42,610
132
00:05:42,610 –> 00:05:48,000
133
00:05:49,410 –> 00:05:50,720
134
00:05:50,720 –> 00:05:53,510
در
135
00:05:53,510 –> 00:05:58,130
جاوا اکنون جیسون خوب است پس آزمون
136
00:05:58,130 –> 00:06:00,740
ما این است که ما با نوشتن ادعایی که
137
00:06:00,740 –> 00:06:03,050
پرسیده بودیم سوالی که پرسیدیم فیلم در
138
00:06:03,050 –> 00:06:05,780
شیر در کاتالوگ است شروع کردیم و سپس
139
00:06:05,780 –> 00:06:08,000
راه خود را به تنظیمات دقیقی که
140
00:06:08,000 –> 00:06:10,550
برای پرسیدن آن سوال نیاز داشتیم ادامه دادیم، اما اجازه دهید
141
00:06:10,550 –> 00:06:13,790
قبل از دیدن آن، این را اجرا کنیم. گذشت
142
00:06:13,790 –> 00:06:16,010
فقط برای بررسی اینکه آیا این ادعا
143
00:06:16,010 –> 00:06:17,960
شکست می خورد، بنابراین این بسیار مفید است این
144
00:06:17,960 –> 00:06:20,780
عادت شماره دو است قبل از اینکه
145
00:06:20,780 –> 00:06:23,270
قبولی آزمون خود را اجرا کنید یا چیز
146
00:06:23,270 –> 00:06:28,540
دیگری در اینجا کم است و همچنین جیسون احمقانه
147
00:06:29,800 –> 00:06:31,860
شما
148
00:06:33,750 –> 00:06:35,449
شما
149
00:06:35,449 –> 00:06:37,460
این ایده خوبی است وقتی در حال کار هستید
150
00:06:37,460 –> 00:06:39,110
زبانهای اسکریپتشده برای اجرای آزمایشهای شما
151
00:06:39,110 –> 00:06:41,150
اغلب یا اجرای کدهایتان اغلب، بنابراین میتوانید
152
00:06:41,150 –> 00:06:43,939
ببینید که چرا شکست میخورد، بنابراین ادعای ما
153
00:06:43,939 –> 00:06:45,770
در حال حاضر این ادعا را نادیده میگیرد،
154
00:06:45,770 –> 00:06:47,659
زیرا فیلم در
155
00:06:47,659 –> 00:06:50,499
کاتالوگ نیست و دیدن آن مهم است
156
00:06:50,499 –> 00:06:53,150
تا بتوانیم مطمئن شویم
157
00:06:53,150 –> 00:06:55,460
به جلو، اما اگر بخواهیم این
158
00:06:55,460 –> 00:06:57,680
کد را در هر نقطه ای در آینده بشکنیم، این
159
00:06:57,680 –> 00:06:59,389
تست با شکست مواجه می شود، این تست آن را می گیرد،
160
00:06:59,389 –> 00:07:01,339
بنابراین نه تنها در
161
00:07:01,339 –> 00:07:03,740
حال حاضر به عنوان یک مشخصات عمل می کند تا به ما بگوید چه
162
00:07:03,740 –> 00:07:06,349
کدی را باید در آن بنویسیم. در آینده
163
00:07:06,349 –> 00:07:08,120
از ما در برابر
164
00:07:08,120 –> 00:07:09,860
رگرسیون ها محافظت می کند و از ما در برابر
165
00:07:09,860 –> 00:07:12,379
شکستن کد محافظت می کند تا بتوانیم آزمایش های خود را اجرا کنیم
166
00:07:12,379 –> 00:07:14,240
و فوراً آن را پیدا کنیم،
167
00:07:14,240 –> 00:07:16,669
بنابراین این یک مزیت جانبی بسیار مفید از
168
00:07:16,669 –> 00:07:18,259
انجام توسعه مبتنی بر آزمایش است زیرا
169
00:07:18,259 –> 00:07:21,580
ما فقط نوشتن تعداد تست های قبولی از
170
00:07:21,580 –> 00:07:23,719
نظر تئوری به این معنی است که تمام کدهای
171
00:07:23,719 –> 00:07:25,039
ما توسط تست ها پوشش داده می شود، اما این
172
00:07:25,039 –> 00:07:26,839
لزوما به این معنی نیست که همه
173
00:07:26,839 –> 00:07:29,180
تست های ما تست های خوبی خواهند بود که خطاها را دریافت می کنند،
174
00:07:29,180 –> 00:07:32,509
بنابراین تست خود را با
175
00:07:32,509 –> 00:07:34,249
اجرای آن و اطمینان از اینکه تست
176
00:07:34,249 –> 00:07:37,939
اظهارات با شکست مواجه میشود،
177
00:07:37,939 –> 00:07:39,589
زیرا ما چیزی را اعلام
178
00:07:39,589 –> 00:07:42,199
نکردهایم یا به دلیل اینکه چیزی وجود ندارد
179
00:07:42,199 –> 00:07:44,360
، اگر
180
00:07:44,360 –> 00:07:47,629
نتیجه با این تست اشتباه بود، ادعای آزمون با
181
00:07:47,629 –> 00:07:49,759
182
00:07:49,759 –> 00:07:52,430
شکست مواجه میشود.
183
00:07:52,430 –> 00:07:54,589
آن را قبول کنید، البته ما
184
00:07:54,589 –> 00:07:55,879
سادهترین کاری را که میتوانیم به
185
00:07:55,879 –> 00:07:57,800
آن فکر کنیم انجام میدهیم که در این مورد فقط
186
00:07:57,800 –> 00:08:00,909
آن را به کاتالوگ اضافه میکنیم،
187
00:08:00,940 –> 00:08:04,150
بنابراین بیایید فیلم خود را به هم بزنیم
188
00:08:04,150 –> 00:08:05,540
189
00:08:05,540 –> 00:08:08,480
و آزمون ما در حال گذراندن است. آزمون در
190
00:08:08,480 –> 00:08:11,270
حال گذراندن است، زمان آن رسیده است که فکر
191
00:08:11,270 –> 00:08:12,770
کنیم آیا باید دوباره فاکتور کنیم یا خیر،
192
00:08:12,770 –> 00:08:15,020
چند چیز در اینجا وجود دارد که باعث اشکال می شود، بیشتر
193
00:08:15,020 –> 00:08:16,940
از همه این کلاس ها کد راه حل ما هستند
194
00:08:16,940 –> 00:08:19,340
و به آزمون تعلق ندارند،
195
00:08:19,340 –> 00:08:21,080
بنابراین بیایید آنها را به فایل های خود منتقل کنیم
196
00:08:21,080 –> 00:08:23,120
. پوشه ریشه را از کد تست دور
197
00:08:23,120 –> 00:08:26,150
کنید تا فایلی به نام
198
00:08:26,150 –> 00:08:29,960
فیلم داشته باشید و به محض اینکه این کار را انجام دادم
199
00:08:29,960 –> 00:08:32,780
بلافاصله آن تست را دوباره اجرا کنید مطمئن شوید
200
00:08:32,780 –> 00:08:35,090
که چیزی را خراب نکردهام حالا که
201
00:08:35,090 –> 00:08:39,409
مطمئن شدیم این یک تست خوب است،
202
00:08:39,409 –> 00:08:41,720
بیایید کتابخانه را به فایل خود
203
00:08:41,720 –> 00:08:44,390
در پوشه ریشه منتقل می کنیم و بلافاصله
204
00:08:44,390 –> 00:08:47,420
آزمایش های خود را اجرا می کنیم و یک چیز دیگر وجود دارد
205
00:08:47,420 –> 00:08:48,830
که مرا در اینجا
206
00:08:48,830 –> 00:08:51,080
207
00:08:51,080 –> 00:08:53,480
208
00:08:53,480 –> 00:08:55,220
آزار می دهد.
209
00:08:55,220 –> 00:08:58,460
اول از همه، ما یک روش برای
210
00:08:58,460 –> 00:09:00,320
بررسی کتابخانه حاوی یک
211
00:09:00,320 –> 00:09:04,280
فیلم خاص ایجاد می کنیم و به محض انجام آن،
212
00:09:04,280 –> 00:09:08,900
آن را اجرا می کنیم و بله دوست داشتنی است و کاری که اکنون
213
00:09:08,900 –> 00:09:10,730
می خواهیم انجام دهیم این است که می خواهیم این
214
00:09:10,730 –> 00:09:15,260
روش را از این فیکسچر آزمایشی به کتابخانه
215
00:09:15,260 –> 00:09:17,600
و هفتم هیچ روش خودکاری برای انجام
216
00:09:17,600 –> 00:09:20,180
این کار در pycharm وجود ندارد و این به این دلیل است
217
00:09:20,180 –> 00:09:22,250
که ما نوع اطلاعات مورد نیاز
218
00:09:22,250 –> 00:09:25,790
در مورد این اشیاء را برای خودکارسازی
219
00:09:25,790 –> 00:09:27,080
نداریم، پس کاری که میخواهیم انجام دهیم این است
220
00:09:27,080 –> 00:09:28,610
که اول از همه این کار را به صورت دستی انجام
221
00:09:28,610 –> 00:09:32,000
میدهیم. این را قطع میکنیم و
222
00:09:32,000 –> 00:09:34,410
جایگزین
223
00:09:34,410 –> 00:09:36,149
میکنیم، بنابراین میخواهیم
224
00:09:36,149 –> 00:09:38,819
مفهوم این روش را از خود به خود
225
00:09:38,819 –> 00:09:42,930
کتابخانه تبدیل کنیم و سپس بلافاصله بهعنوان یک
226
00:09:42,930 –> 00:09:45,149
حرکت واحد بهعنوان یک تراکنش منفرد،
227
00:09:45,149 –> 00:09:47,430
اگر مایل بودیم برای چسباندن روش
228
00:09:47,430 –> 00:09:50,750
خود در اینجا و ما قصد داریم مراجع را به روز
229
00:09:50,750 –> 00:09:53,459
230
00:09:53,459 –> 00:09:56,430
کنیم تا خود کاتالوگ کتابخانه نباشد، بنابراین ما آن را تغییر داده ایم.
231
00:09:56,430 –> 00:10:00,899
232
00:10:00,899 –> 00:10:03,300
233
00:10:03,300 –> 00:10:04,949
234
00:10:04,949 –> 00:10:07,769
خوب است، بنابراین این اولین سوالی است
235
00:10:07,769 –> 00:10:11,610
که میخواهیم بپرسیم این است که فیلم به کتابخانه اضافه شده
236
00:10:11,610 –> 00:10:13,709
است، آیا در کاتالوگ است،
237
00:10:13,709 –> 00:10:18,029
سؤال بعدی که میخواهیم بپرسیم در مورد
238
00:10:18,029 –> 00:10:21,569
نسخههای اجارهای است، بنابراین فی