آموزش تست واحد (Unit Testing) در دات نت (NET.)

Testing .NET Code in Visual Studio 2019
تعداد ویدئو 46
زمان دوره 02:53:46
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش تست واحد (Unit Testing) در دات نت (NET.) یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی انجام تست واحد (Unit Testing) در دات نت و ویژوال استودیو 2019 است که با نام اصلی Testing .NET Code in Visual Studio 2019  از شرکت Pluralsight منتشر شده است.

تست واحد (Unit Testing) چیست؟

تست واحد، برنامه را به کوچکترین بیت کد، معمولاً در سطح تابع، تجزیه می کند و تضمین می کند که تابع مقدار مورد انتظار را برمی گرداند. با استفاده از یک چارچوب تست واحد، تست های واحد به یک موجودیت مجزا تبدیل می شوند که سپس می توانند تست های خودکار را در برنامه در حال ساخت اجرا کنند.

هنگامی که تست‌های واحد راه‌اندازی می‌شوند، اگر تغییری در کد ایجاد شود، برای توضیح یک شرط اضافی که در زمان توسعه برنامه مشخص نبود، برای مثال، تست‌های واحد نشان می‌دهند که آیا همه موارد با مقادیر مورد انتظار مطابقت دارند یا خیر. خروجی توسط تابع

تست واحد، تست یکپارچه سازی نیست. این تست سرتاسری نیست. در حالی که هر دوی اینها متدولوژی‌های قدرتمندی هستند، اما باید در ارتباط با تست واحد کار کنند نه به عنوان جایگزین.

مزایا و هدف تست واحد

سخت ترین مزیت تست واحد برای درک، اما مهم ترین آن، توانایی آزمایش مجدد کد تغییر یافته در لحظه است. دلیل اینکه درک آن بسیار سخت است این است که بسیاری از توسعه دهندگان با خود فکر می کنند، “من دیگر هرگز به آن تابع دست نخواهم زد” یا “وقتی کارم تمام شد، آن را دوباره تست خواهم کرد.” و ذینفعان به این فکر می کنند که “اگر آن قطعه قبلا نوشته شده است، چرا باید دوباره آن را تست کنم؟”

تغییراتی که ما به صورت روزانه ایجاد می کنیم می تواند تأثیرات زیادی داشته باشد. مثلا:

  • آیا سوئیچ شما به درستی مقدار جدیدی را که وارد کرده اید محاسبه می کند؟
  • آیا می دانید چند بار از آن سوئیچ استفاده کرده اید؟
  • آیا مقایسه‌های رشته‌های غیرحساس به حروف بزرگ را به‌درستی در نظر گرفته‌اید؟
  • آیا nullها را به درستی بررسی می کنید؟
  • آیا استثنای پرتاب همانطور که انتظار داشتید انجام می شود؟

تست واحد این سوالات را می گیرد و آنها را در کد و فرآیندی به یاد می آورد تا اطمینان حاصل شود که این سوالات همیشه پاسخ داده می شوند. تست های واحد را می توان قبل از ساخت اجرا کرد تا اطمینان حاصل شود که اشکالات جدیدی را معرفی نکرده اید. از آنجایی که تست های واحد به گونه ای طراحی شده اند که اتمی باشند، آنها بسیار سریع اجرا می شوند، معمولا کمتر از 10 میلی ثانیه در هر تست. حتی در یک برنامه بسیار بزرگ، یک مجموعه تست کامل را می توان در کمتر از یک ساعت انجام داد. آیا فرآیند UAT شما می تواند با آن مطابقت داشته باشد؟

Testing .NET Code in Visual Studio 2019 Snapshotبه‌عنوان یک توسعه‌دهنده، شاید این کار بیشتر برای شما به نظر برسد. بله، خیالتان راحت است که کدی که منتشر می کنید خوب است. اما تست واحد همچنین به شما این فرصت را می دهد که ببینید طراحی شما در کجا ضعیف است. آیا برای دو قطعه کد همان تست های واحد را می نویسید؟ آیا به جای آن باید روی یک قطعه کد باشند؟

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

آیا واحد کد شما قابل آزمایش است؟

علاوه بر DRY، ملاحظات دیگری نیز داریم.

آیا روش ها یا عملکردهای شما تلاش زیادی برای انجام دادن دارند؟

اگر نیاز به نوشتن تست‌های واحد بیش از حد پیچیده دارید که بیشتر از آنچه انتظار دارید اجرا می‌شوند، ممکن است روش شما بسیار پیچیده باشد و به عنوان چندین روش مناسب‌تر باشد.

آیا به درستی از Dependency Injection استفاده می کنید؟

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

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

آیا اجزای شما چگونه با یکدیگر تعامل دارند؟

هنگامی که وابستگی ها و تزریق وابستگی (dependency injection) خود را بررسی کردید، ممکن است متوجه شوید که وابستگی های چرخه ای ( cyclic dependencie) را در کد خود وارد کرده اید. اگر کلاس A به کلاس B بستگی دارد، که به نوبه خود به کلاس A بستگی دارد، باید در طراحی خود تجدید نظر کنید.

زیبایی تزریق وابستگی

بیایید مثال فیبوناچی خود را در نظر بگیریم. رئیس شما به شما می گوید که کلاس جدیدی دارند که کارآمدتر و دقیق تر از عملگر افزودن فعلی موجود در C# است.

در حالی که این مثال خاص در دنیای واقعی چندان محتمل نیست، ما نمونه های مشابهی را در اجزای دیگر مانند احراز هویت، object mapping و تقریباً هر فرآیند الگوریتمی می بینیم.

سرفصل مطالب آموزش ویدیویی تست واحد(Unit Testing) در دات نت (NET.)

فصل اول: مقدمه

  • مقدمه دوره آموزشی

فصل دوم: ایجاد کردن اولین پروژه تست

  • مقدمه
  • بررسی سناریوی Wired Brain Coffee
  • بررسی کردن کد برنامه
  • ایجاد کردن یک پروژه تست
  • ایجاد کردن یک کلاس OrderCreationServiceTests
  • بررسی مباحث دوره آموزشی

فصل سوم: نوشتن و اجرا کردن Unit Test ها

  • مقدمه
  • پیاده سازی کردن اولین روش Test Method
  • استفاده کردن از Moq برای Fake کردن Dependencie ها
  • راه اندازی کردن و Initialize کردن تست ها
  • چک کردن اینکه آیا Stock مربوط به Coffee Cup ها از یک مقدار خاص تجاوز کرده باشد
  • انجام Assertion بر روی Exception ها
  • ابزار مدیریت سفارش فنجان قهوه را راه اندازی کنید
  • اجرا کردن ابزار Coffee Cup Order Admin Tool
  • استفاده کردن از ابزار .NET Core و .NET Framework
  • ایجاد کردن و استفاده کردن از Playlist ها
  • اجرا کردن تست ها با Shotcut ها و CodeLens
  • جمع بندی

فصل چهارم: پیاده سازی کردن Data Driven Test ها

  • مقدمه
  • تست کردن و محاسبه کردن Discount Percentage
  • یک تست مبتنی بر داده (Data Driven Test)
  • تست کردن Discount برای Premium Customer ها
  • دسترسی پیدا کردن و تست کردن Internal Member ها
  • اجرا کردن ابزار Coffee Cup Order Admin Tool
  • جمع بندی

فصل پنجم: تست کردن با MSTest، NUnit یا xUnit

  • مقدمه
  • از کدام یک از Test Framework باید استفاده کنید؟
  • درک هرچه بهتر Test Adapter ها
  • بررسی عملی Test Adapter مربوط به MSTest
  • نوشتن تست با NUnit
  • نوشتن تست ها با xUnit
  • جمع بندی

فصل ششم: تجزیه و تحلیل کردن Code Coverage

  • مقدمه
  • اجرا کردن تجزیه و تحلیل پوشش تست (Code Coverage Analysis)
  • بهبود دادن Code Coverage کد با تست های بیشتر
  • خروج گرفتن (Export) و ورودی گرفتن (Import) از نتایج Code Coverage Results
  • لحاظ نکردن کد در Code Coverage Analysis
  • پیکربندی کردن Code Coverage Analysis با استفاده کردن از فایل Runsettings
  • جمع بندی

فصل هفتم: استفاده کردن از Live Unit Testing

  • مقدمه
  • بررسی کردن Live Unit Testing
  • نوشتن تست ها با Live Unit Testing
  • لحاظ نکردن تست ها در Live Unit Testing
  • لحاظ نکردن تست ها به روش برنامه نویسی
  • پیکربندی Live Unit Testing
  • جمع بندی

نقد و بررسی‌ها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش تست واحد (Unit Testing) در دات نت (NET.)”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته های محصولات

افزودن به سبد خرید