خب اینهمه گفتیم تست، یکم درمورد یونیت تست حرف بزنیم اول از همه یونیت… — Persian Developer Network — TG.ME

خب اینهمه گفتیم تست، یکم درمورد یونیت تست حرف بزنیم

اول از همه یونیت تست چیه؟
ما میدونیم که جی اس زبان پویاییه، یعنی یه سری جاها ممکنه تایپ جوری که نمی‌خوایم تغییر کنه یا یه سری مشکلاتی که جاوااسکریپت داشت و تایپ اسکریپت حلشون نکرد. مثلا میدونیم که طبق coercion که قبلاً درموردش حرف زدیم عبارت زیر به ما ارور نمیده.
true + true === 2
//true

همچنین ما میدونیم که وقتی حجم کدبیس زیاد میشه ما اون کدبیس رو ماژولار میکنیم یعنی یه تابع یا یه هوک رو ده ها جا استفاده میکنیم و این یعنی بعد اگر چیزی تو اون تابع تغییر کرد ما مجبوریم دنبال ارور بگردیم.

روش جلوگیری از این مشکلات یونیت تسته.

ما میایم یه تعداد تست مینویسیم که ساختار خیلی ساده ای دارن به شکل زیر
function add(a ,b) {
return a + b
}

expect(add(2 ,5)).toBe(7)

یعنی به زبان ساده ما میگیم توقع داشته باش این تابع با این ورودی ها این خروجی رو بده و حالت های مختلف رو تست میکنیم، نال بودن، undefined بودن و غیره.

تست ران میشه و به ما میگه فلان تابع جوری که میخوای عمل کرد و فلان تابع جوری که میخوای عمل نکرد و باید درستش کنی.

خب برتریش چیه؟
اینه که اگر ما تغییری توی تابعمون بدیم، ولی تست هایی که (باید اصولی بنویسیمشون) پاس شدن، یعنی نیازی نیست دنبال ارور بگردیم.

یادمون باشه این که تستمون کار می‌کنه صرفا به این معنیه که تستمون رد نشده و به این معنی نیست که کدمون کار می‌کنه، تست ها صرفا یه لایه محافظن واسه مقیاس بالا.

اینم باید بدونیم که تست نوشتن راحته، تست هر کدی راحت نیست و این به معنی اینه که باید اون کد تیکه تیکه بشه.

همچنین ابزار های رایج تست به ما گزینه هایی مثل توقع ارور، توقع رندوم بودن و توقع برابر بودن رفرنس (که واسه آبجکت ها خراب میشه) و برابر بودن ساختاری میدن.

مهم ترین سوال هم اینه که کی شروع کنم به تست نویسی؟
زودتر از چیزی که فکر می‌کنی، اگه میدونی تابع چجوری کار می‌کنه، وقتشه همراه با کدت تست بنویسی.

#javascipt
#test
@persiandn
🔥1
August 31, 2026 62 4 1