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