تعداد ویدئو | 46 |
---|---|
زمان دوره | 02:53:46 |
مترجم | مرتضی گیتی |
دوبلر | مرتضی گیتی |
سایت منتشر کننده | پلورال سایت |
آموزش تست واحد (Unit Testing) در دات نت (NET.) یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی انجام تست واحد (Unit Testing) در دات نت و ویژوال استودیو 2019 است که با نام اصلی Testing .NET Code in Visual Studio 2019 از شرکت Pluralsight منتشر شده است.
تست واحد، برنامه را به کوچکترین بیت کد، معمولاً در سطح تابع، تجزیه می کند و تضمین می کند که تابع مقدار مورد انتظار را برمی گرداند. با استفاده از یک چارچوب تست واحد، تست های واحد به یک موجودیت مجزا تبدیل می شوند که سپس می توانند تست های خودکار را در برنامه در حال ساخت اجرا کنند.
هنگامی که تستهای واحد راهاندازی میشوند، اگر تغییری در کد ایجاد شود، برای توضیح یک شرط اضافی که در زمان توسعه برنامه مشخص نبود، برای مثال، تستهای واحد نشان میدهند که آیا همه موارد با مقادیر مورد انتظار مطابقت دارند یا خیر. خروجی توسط تابع
تست واحد، تست یکپارچه سازی نیست. این تست سرتاسری نیست. در حالی که هر دوی اینها متدولوژیهای قدرتمندی هستند، اما باید در ارتباط با تست واحد کار کنند نه به عنوان جایگزین.
سخت ترین مزیت تست واحد برای درک، اما مهم ترین آن، توانایی آزمایش مجدد کد تغییر یافته در لحظه است. دلیل اینکه درک آن بسیار سخت است این است که بسیاری از توسعه دهندگان با خود فکر می کنند، “من دیگر هرگز به آن تابع دست نخواهم زد” یا “وقتی کارم تمام شد، آن را دوباره تست خواهم کرد.” و ذینفعان به این فکر می کنند که “اگر آن قطعه قبلا نوشته شده است، چرا باید دوباره آن را تست کنم؟”
تغییراتی که ما به صورت روزانه ایجاد می کنیم می تواند تأثیرات زیادی داشته باشد. مثلا:
تست واحد این سوالات را می گیرد و آنها را در کد و فرآیندی به یاد می آورد تا اطمینان حاصل شود که این سوالات همیشه پاسخ داده می شوند. تست های واحد را می توان قبل از ساخت اجرا کرد تا اطمینان حاصل شود که اشکالات جدیدی را معرفی نکرده اید. از آنجایی که تست های واحد به گونه ای طراحی شده اند که اتمی باشند، آنها بسیار سریع اجرا می شوند، معمولا کمتر از 10 میلی ثانیه در هر تست. حتی در یک برنامه بسیار بزرگ، یک مجموعه تست کامل را می توان در کمتر از یک ساعت انجام داد. آیا فرآیند UAT شما می تواند با آن مطابقت داشته باشد؟
بهعنوان یک توسعهدهنده، شاید این کار بیشتر برای شما به نظر برسد. بله، خیالتان راحت است که کدی که منتشر می کنید خوب است. اما تست واحد همچنین به شما این فرصت را می دهد که ببینید طراحی شما در کجا ضعیف است. آیا برای دو قطعه کد همان تست های واحد را می نویسید؟ آیا به جای آن باید روی یک قطعه کد باشند؟
اینکه کد شما قابل تست واحد باشد خود راهی برای بهبود طراحی خود است. و برای اکثر توسعه دهندگانی که هرگز واحد را تست نکرده اند، یا زمان زیادی را برای در نظر گرفتن طرح قبل از کدنویسی صرف نمی کنند، می توانید با آماده کردن آن برای تست واحد، متوجه شوید که طراحی شما چقدر بهبود یافته است.
علاوه بر DRY، ملاحظات دیگری نیز داریم.
اگر نیاز به نوشتن تستهای واحد بیش از حد پیچیده دارید که بیشتر از آنچه انتظار دارید اجرا میشوند، ممکن است روش شما بسیار پیچیده باشد و به عنوان چندین روش مناسبتر باشد.
اگر روش مورد آزمایش شما به کلاس یا تابع دیگری نیاز دارد، این را وابستگی (Dependency) می نامیم. در تست واحد، ما اهمیتی نمیدهیم که وابستگی در زیر کاپوت ماشین چه میکند. برای هدف روش مورد آزمایش، آن یک جعبه سیاه است. وابستگی مجموعه ای از تست های واحد خود را دارد که تعیین می کند آیا رفتار آن به درستی کار می کند یا خیر.
به عنوان یک تستر، میخواهید آن وابستگی را شبیهسازی کنید و به آن بگویید چه مقادیری را در نمونههای خاص برگرداند.این به شما کنترل بیشتری بر روی موارد آزمایشی خود می دهد. برای انجام این کار، باید یک نسخه ساختگی از آن وابستگی تزریق کنید.
هنگامی که وابستگی ها و تزریق وابستگی (dependency injection) خود را بررسی کردید، ممکن است متوجه شوید که وابستگی های چرخه ای ( cyclic dependencie) را در کد خود وارد کرده اید. اگر کلاس A به کلاس B بستگی دارد، که به نوبه خود به کلاس A بستگی دارد، باید در طراحی خود تجدید نظر کنید.
بیایید مثال فیبوناچی خود را در نظر بگیریم. رئیس شما به شما می گوید که کلاس جدیدی دارند که کارآمدتر و دقیق تر از عملگر افزودن فعلی موجود در C# است.
در حالی که این مثال خاص در دنیای واقعی چندان محتمل نیست، ما نمونه های مشابهی را در اجزای دیگر مانند احراز هویت، object mapping و تقریباً هر فرآیند الگوریتمی می بینیم.
فصل اول: مقدمه
فصل دوم: ایجاد کردن اولین پروژه تست
فصل سوم: نوشتن و اجرا کردن Unit Test ها
فصل چهارم: پیاده سازی کردن Data Driven Test ها
فصل پنجم: تست کردن با MSTest، NUnit یا xUnit
فصل ششم: تجزیه و تحلیل کردن Code Coverage
فصل هفتم: استفاده کردن از Live Unit Testing
تمامی حقوقی مادی و معنوی متعلق به گروه آموزشی پرووید است.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.