View Full Version : نحوه ی نوشتن Unit Test برای لایه های مختلف
IR-Developer
پنج شنبه 23 مهر 1394, 08:58 صبح
سلام برای پروژم میخوام Unit Test بنویسم که لایه های Domain Classes , DataLayers , Service Layers , Common داره و از الگوی Dependency Injection توش استفاده کردم .
نمیدونم چطور بخش های مختلف را تست کنم . فرض کنید میخوام قسمت Service Layers و پیاده سازی های Interface های دسترسی به دیتابیس که SP ها هست را تست کنم چون این بخش ها بیشتر باگ و شکلات داشتن . چطور باید انجام بشه ؟
از ابتدای پروژه Unit Test هم ایجاد کردم الان که پروژه تموم شد ولی هر وقت خواستم Test را بنویسم نمیدونستم چطور باید باشه .
لطفا راهنمایی کنید ...
hakim22
پنج شنبه 23 مهر 1394, 21:49 عصر
نوشتن تست یک کار تخصصی هست و باید برای پیدا کردن روش درست تست ساعتها وقت بزارید.
یکی از کارهایی که باید انجام بدید استفاده از NUnit است. همچنین برای یک تست خوب باید از ابزار Moq هم استفاده کنید. با استفاده از Moq شما میتوانید Dependency هارو شبیه سازی کنید.
تست هر لایه نیازمندی های خودشو داره پیشنهاد میکنم یا سوالتون رو دقیقتر مطرح کنید یا کتابهای مفصل و متعددی که برای نوشتن تست هست مطالعه کنید.
تست کردن همه چیز هم الزامی نیست فقط برای قسمتهایی تست بنویسید که خیلی مهم هستند . برای یک برنامه نویس که انفرادی کار میکند یا در تیم های کوچک هزینه و زمانی که برای تست صرف میشود (در صورت عدم تخصص) میتوانید از هزینه ی پیاده سازی پروژه ی اصلی فراتر رود. مخصوصا از نوشتن تست برای متدهایی که خیلی ساده هستند و مطمئن هستید درست کار میکنند خود داری کنید. همچنین ابزارها و ماژولهایی که دیگران نوشتن رو تست نکنید.
اگر میخواهید در این زمینه مهارت پیدا کنید از یکبار از روش Test Driven Development برای پیاده سازی پروژه استفاده کنید . در این مسیر با بسیاری از روشهای تست آشنا خواهید شد.
تست هر متد باید همزمان با نوشتن خود متد نوشته شود.
اگر بعد از پایان پروژه قصد دارید برگردید و برای هر متد تست بنویسید کار سنگینی در پیش دارید. چرا که نیازمندی ها و شرایطی که هر متد برای کار به آن نیاز دارد خیلی زود فراموش میشود.
raya_6554
یک شنبه 17 آبان 1394, 08:48 صبح
سلام من چند سال هست که به صورت حرفه ای تست کار میکنم
من با بعضی چیزهایی که آقای hakim فرمودند موافقم اما با بعضی چیزهای دیگر خیر
برای کسی که تاحالا تست ننوشته یا خیلی کم کار کرده استفاده از tdd خیلی مشکل و پیچیده خواهد بود
باید دقت کنید تستی که مینویسید کاملا مستقل باشه و هیچ وابستگی به بیرون یا متد های خارجی نداشته باشه
تست نویسی درسته هزینه بر هست اما در مقابل هزینه هایی که بعد از ارائه محصول به وجود میاد خیلی کمتره
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.