tg-me.com/djangolearn_ir/1041
Last Update:
فیکسچر (fixure) در جنگو
از لینکدین Amir Hossein Khazaei
❓ فیکسچر چیه؟
فیکسچر یه جور دادهی از پیش تعریف شدهس که قبل از اجرای تستهامون به دیتابیس اضافه میشه. این دادهها میتونن هر چیزی باشن؛ از یه کاربر ساده گرفته تا یه محصول پیچیده توی فروشگاه آنلاینمون.
❓ چرا بهش نیاز داریم؟
1️⃣ تستهای دقیقتر: با داشتن دادههای مشخص، میتونیم تستهای دقیقتری بنویسیم و مطمئن بشیم که همه چیز طبق انتظار کار میکنه.
2️⃣ تستهای سریعتر: به جای اینکه هر بار قبل از اجرای تستها، دادههای مورد نیازمون رو به صورت دستی وارد دیتابیس کنیم، با استفاده از فیکسچر این کار رو یک بار انجام میدیم و در تستهای بعدی از همون دادهها استفاده میکنیم.
3️⃣ تکرارپذیری تستها: با استفاده از فیکسچر، میتونیم مطمئن باشیم که هر بار که تستهامون رو اجرا میکنیم، نتیجه یکسانی خواهیم داشت.
✅ ساختن یه فیکسچر
برای ساختن یه فیکسچر، یه فایل با پسوند json یا yaml ایجاد میکنیم و دادههای مورد نظرمون رو به صورت ساختیافته در اون تعریف میکنیم.
✅ دستورات لازم و ساخت و لود کردن فیکسچر
1️⃣ ساختن یه فیکسچر با دستور dumpdata
دستور dumpdata بهت اجازه میده که دادههای موجود در دیتابیس رو به صورت یک فایل JSON یا YAML خروجی بگیری. این فایل خروجی رو میتونی به عنوان فیکسچر استفاده کنی.
2️⃣ استفاده از فیکسچر با دستور loaddata
دستور loaddata بهت اجازه میده که دادههای موجود در یک فایل فیکسچر رو به دیتابیس اضافه کنی.
✅ مثال عملی / من کجا باهاش مواجه شدم؟
اضافه کردن شهر ها و استان های ایران به دیتابیس ، که بدیهیه که نمیخوام یکی یکی شهر هارو اضافه کنم😃 توی شرکت پلتفرم حقوقی ترازو که کار میکنم ، قراره لیست شهر هارو به کاربر نمایش بدیم
پس باید از یک جایی دیتای شهرهارو بگیرم و به دیتایس اضافه کنم.
⭕️ نکات کلیدی فیکسچر به زبان ساده
ساختار فیکسچر: فیکسچرت باید شبیه به همون چیزی باشه که توی دیتابیس داری. مثلاً اگه یه مدل محصول داری، فیکسچرت هم باید یه محصول رو تعریف کنه.
اسمگذاری فیکسچر: به فیکسچرت یه اسم بامعنا بده تا بفهمی توش چه دادههایی داری. مثلاً city.json یعنی توش اطلاعات شهرها هست.
مدیریت فیکسچر: وقتی تستهای زیادی مینویسی، باید یه جوری فیکسچرهات رو مرتب کنی تا گم نشی. میتونی از فولدرهای مختلف یا ابزارهای مخصوص استفاده کنی.
✅ جمعبندی
فیکسچر یه ابزار خیلی خفنه که بهت کمک میکنه تستهای بهتری بنویسی. با فیکسچر، میتونی دادههای از پیش تعریف شدهای رو به دیتابیس اضافه کنی و تست کنی که همه چیز درست کار میکنه. انگار داری یه محیط آزمایشی برای برنامهت میسازی.
BY جنگولرن
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/djangolearn_ir/1041