پرووید
منو

آموزش انجام Unit Testing در وب اپلیکیشن های ASP.NET Core

زبان: فارسی (دوبله شده)مترجم: پروویددوبلر: پروویدسطح: پیشرفتهمدت زمان: 05:31:14تعداد ویدئوها: 96فایل های پروژه: ناموجود
قیمت:۵٬۱۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش تست نرم‌افزار پیشرفته است که می توانید از تمامی آموزش های آن دیدن کنید.

آموزش انجام Unit Testing در وب اپلیکیشن های ASP.NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، انجام Unit Testing در MVC Web Application های ASP.NET Core 6 است که با نام اصلی Unit Testing an ASP.NET Core 6 MVC Web Application از شرکت Pluralsight منتشر شده است.

مزیت های Unit Testing در وب اپلیکیشن های ASP.NET Core

زمانی که یک اپلیکیشن ASP.NET Core MVC را با روشی اصولی و طراحی مناسب ایجاد می کنید حجم زیادی از پیچیدگی ها و یا business logic ها در business entity ها و سرویس encapsulate و یا کپسوله می شود. اجزای تشکیل دهنده یک اپلیکیشن نوشته شده با ASP.NET Core MVC یعنی کنترل ها و فیلتر ها و view model ها و view ها اغلب به نوشتن تست نیاز ندارند. ضمناً حجم زیادی از functionality تعریف شده در یک برنامه نوشته شده بایستی به ASP.NET Core MVC در action method ها تعریف نمی گردند. از همین جهت تست کردن سرویس ها می تواند به برنامه کمک بیشتری کند.

Code Coverage and Deciding What to Unit Test - نمونه ای از بخش Unit Testing ASP.NET Core MVC Controllers در آموزش انجام Unit Testing در وب اپلیکیشن های ASP.NET Core
نمونه ای از بخش «Unit Testing ASP.NET Core MVC Controllers» در آموزش انجام Unit Testing در وب اپلیکیشن های ASP.NET Core

تست کردن مکانیزم routing و یا global error handling به سادگی در ASP.NET Core MVC امکان پذیر نخواهد بود. به همین ترتیب تست کردن فیلتر ها و مکانیزم های model validation و authentication و authorization که اغلب در قالب فیلترها پیاده سازی می شوند نیز نمی توانند با unit test هایی که برای action method های controller ها نوشته اید تست گردند. به همین جهت است که controler ها و action های تعریف شده در آنها اغلب کم حجم هستند و بسیاری از وظایف خود را به سرویس هایی که در برنامه تعریف می گردند محول می کنند. از همین جهت نوشتن تست برای اینگونه سرویس ها می تواند به برنامه کمک بسیار زیادی کند. این ممکن است برای نوشتن تست مناسب در اپلیکیشن های ASP.NET Core MVC نیازمند refactor کردن کد نوشته شده باشد. در این رابطه حتماً توصیه می کنیم که از آموزش Refactoring در سی شارپ استفاده کنید. در روند refactor کردن کد برنامه می بایست abstraction های جدید را مشخص کرده و اغلب از dependency injection به منظور استفاده کردن و دسترسی پیدا کردن به این abstraction ها استفاده کنید. خصوصاً زمانی که می خواهید از این abstraction ها در تست های نوشته شده استفاده کنید مکانیزم dependency injection می تواند کار شما را بسیار راحت تر کند و نیاز به کدنویسی مستقیم بر روی abstraction ها را مرتفع نماید.

Learning about Assertions - نمونه ای از بخش Tackling Basic Unit Testing Scenarios در آموزش انجام Unit Testing در وب اپلیکیشن های ASP.NET Core
نمونه ای از بخش «Tackling Basic Unit Testing Scenarios» در آموزش انجام Unit Testing در وب اپلیکیشن های ASP.NET Core

نحوه نوشتن تست واحد برای کنترلرهای ASP.NET Core

در برنامه های مبتنی بر ASP.NET Core MVC، کنترلرها مسئول دریافت درخواست ها و هماهنگ کردن عملیات موردنیاز برای تولید پاسخ هستند. تست واحد کنترلرها به شما کمک می کند رفتار آن ها را در شرایط مختلف بررسی کنید، بدون اینکه برای هر آزمایش به اجرای کامل برنامه نیاز داشته باشید. با تعریف ورودی های مشخص و بررسی نتایج مورد انتظار می توانید اطمینان بیشتری از صحت منطق کنترلرها به دست آورید و مشکلات را زودتر در فرایند توسعه شناسایی کنید.

برای نوشتن تست های مؤثر، باید وابستگی های کنترلر را نیز در نظر بگیرید. اگر کنترلر برای دریافت داده یا اجرای عملیات به یک سرویس وابسته باشد، می توان آن وابستگی را با یک نمونه جایگزین کنترل کرد تا تمرکز تست روی رفتار خود کنترلر باقی بماند. در این آموزش با تست کردن کنترلرهای ASP.NET Core و ایزوله کردن Unit Test ها آشنا می شوید و یاد می گیرید چگونه بخش های مختلف برنامه را مستقل تر بررسی کنید.

تست کردن Middleware و Filter در ASP.NET Core

Middleware یکی از اجزای اصلی خط پردازش درخواست در ASP.NET Core است و می تواند پیش از رسیدن درخواست به بخش های بعدی یا پس از دریافت پاسخ، عملیات مشخصی انجام دهد. از آنجا که Middleware ها در رفتار کلی درخواست ها نقش دارند، آزمایش صحیح آن ها می تواند به شناسایی مشکلاتی مانند مدیریت نامناسب درخواست یا پاسخ کمک کند. تست واحد این اجزا نیازمند توجه به ورودی، خروجی و نحوه تعامل آن ها با بخش های دیگر خط پردازش است.

Filter ها نیز امکان اجرای منطق مشخصی را در مراحل مختلف پردازش درخواست های MVC فراهم می کنند. بررسی رفتار آن ها در شرایط گوناگون به توسعه دهندگان کمک می کند مطمئن شوند عملیات مورد انتظار در زمان مناسب انجام می شود. در این دوره، تست کردن Middleware ها و Filter ها در کنار Service Registration بررسی می شود تا با روش های آزمایش بخش های مختلف زیرساخت ASP.NET Core آشنا شوید و بتوانید کیفیت تست های خود را در سطح اجزای برنامه گسترش دهید.

استفاده از Data-driven Test در تست واحد دات نت

در بسیاری از موارد، یک متد باید برای ورودی های مختلف رفتار صحیحی داشته باشد. به جای نوشتن یک تست جداگانه برای هر مجموعه ورودی، می توان از Data-driven Test استفاده کرد تا یک سناریوی آزمایشی با داده های متفاوت اجرا شود. این روش به کاهش تکرار در کد تست کمک می کند و امکان بررسی حالت های مختلف، از جمله ورودی های معتبر و نامعتبر، را در ساختاری منظم فراهم می سازد.

در تست های داده محور، انتخاب مجموعه داده مناسب اهمیت زیادی دارد؛ زیرا هدف فقط افزایش تعداد اجراها نیست، بلکه باید حالت های مهم و مرزی نیز بررسی شوند. با جدا کردن داده های آزمایشی از منطق تست، خوانایی و نگهداری مجموعه تست ها ساده تر می شود. در این آموزش با شروع کار با Data-driven Test ها آشنا می شوید و یاد می گیرید چگونه این روش را در کنار سایر تکنیک های Unit Testing برای بررسی رفتار برنامه های ASP.NET Core به کار بگیرید.

ادغام تست های واحد در فرایند توسعه و انتشار نرم افزار

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

در فرایندهای توسعه و انتشار، می توان اجرای تست ها را به مراحل مختلف گردش کار اضافه کرد تا تغییرات پیش از انتقال به مراحل بعدی بررسی شوند. این کار به تیم کمک می کند مشکلات را زودتر شناسایی کند و از ورود برخی خطاهای قابل تشخیص به نسخه های بعدی جلوگیری نماید. در این آموزش با یکپارچه کردن Unit Test ها در جریان های Development و Release آشنا می شوید و درک می کنید که تست واحد چگونه می تواند بخشی از فرایند روزمره توسعه برنامه های ASP.NET Core باشد.

سرفصل مطالب آموزش ویدیویی انجام Unit Testing در وب اپلیکیشن های ASP.NET Core

فصل اول: مقدمه دوره آموزشی
  • مقدمه
فصل دوم: مروری بر Unit Testing
  • مقدمه
  • بررسی محتوای این دوره آموزشی
  • بررسی پیش نیاز های این دوره آموزشی
  • بررسی Framework ها و ابزارها
  • آموزش عملی: بررسی اپلیکیشن این دوره آموزشی
  • چیستی، چرایی و دیگر جزئیات مربوط به Unit Testing
  • مقایسه کردن Unit Test ها، Integration Test ها و Functional Test ها
  • آموزش عملی: اضافه کردن یک پروژه Unit Test
  • آموزش عملی: نوشتن اولین Unit Test
  • توصیه های مربوط به نامگذاری Unit Test ها
  • بررسی الگوی Arrange، Act و Assert
  • مقایسه کردن xUnit، NUnit و MSTest با یکدیگر
  • جمع بندی
فصل سوم: بررسی کردن سناریو های ابتدائی Unit Testing
  • مقدمه
  • یادگیری Assertion ها
  • آموزش عملی: بررسی Assert کردن بر روی Boolean ها
  • آموزش عملی: بررسی Assert کردن بر روی String ها
  • آموزش عملی: بررسی Assert کردن بر روی Numeric Value ها
  • آموزش عملی: بررسی Assert کردن بر روی Floating Point ها به صورت دقیق
  • آموزش عملی: معرفی کردن یک Repository پیاده سازی شده با استفاده از داده های Test
  • آموزش عملی: بررسی Assert کردن بر روی Array ها و محتوای مجموعه ها
  • آموزش عملی: بررسی Assert کردن Asynchronous Code
  • آموزش عملی: بررسی Assert کردن Exception ها
  • آموزش عملی: بررسی Assert کردن بر روی Event ها
  • آموزش عملی: بررسی Assert کردن بر روی Object Type ها
  • Assert کردن بر روی متدهای Private
  • جمع بندی
فصل چهارم: راه اندازی کردن Test ها و کنترل کردن روند اجرای یک Test
  • مقدمه
  • راه اندازی کردن Test ها و به اشتراک گذاری Test Context
  • آموزش عملی: اشتراک گذاشتن Context با استفاده از روش Constructor و Dispose
  • آموزش عملی: اشتراک گذاشتن Context با اصتفاده از روش Class Fixture
  • آموزش عملی: اشتراک گذاشتن Context با استفاده از روش Collection Fixture
  • یکپارچه کردن Test Context با سیستم Dependency Injection مربوط به ASP.NET Core
  • آموزش عملی: یکپارچه کردن Test Context با سیستم Dependency Injection مربوط به ASP.NET Core
  • آموزش عملی: دسته بندی کردن و اجرا کردن Test های زیرمجموعه
  • آموزش عملی: نادیده گرفتن Test ها
  • آموزش عملی: اضافه کردن خروجی Additional Test
  • جمع بندی
فصل پنجم: شروع کار با Data-driven Test ها
  • مقدمه
  • معرفی کردن Theory ها و Data-driven Test ها
  • آموزش عملی: Test کردن یک Theory با استفاده Inline Data
  • آموزش عملی: Test کردن یک Theory با استفاده Member Data
  • آموزش عملی: Test کردن یک Theory با استفاده Class Data
  • آموزش عملی: Test کردن یک Theory با استفاده Test Data مربوط به Strongly-typed
  • بدست آوردن داده ها از یک منبع خارجی
  • آموزش عملی: بدست آوردن داده ها از یک منبع خارجی
  • جمع بندی
فصل ششم: ایزوله کردن Unit Test ها با تکنیک های ASP.NET Core و Mocking
  • مقدمه
  • بررسی روش های Test Isolation
  • بررسی Unit Testing با استفاده از Entity Framework Core
  • آموزش عملی: استفاده از SQLite در حالت درون حافظه ای انجام Unit Testing
  • بررسی Unit Testing با استفاده از HttpClient
  • آموزش عملی: بررسی Unit Testing با استفاده از HttpClient
  • ایزوله کردن Moq
  • آموزش عملی: ایجاد کردن و بکار بردن یک Mock Object
  • آموزش عملی: پیکربندی کردن مقادیر بازگشتی Mock Object
  • آموزش عملی: Mock کردن یک Interface
  • آموزش عملی: Mock کردن کد Async
  • روش Test Isolation کدام است؟
  • جمع بندی
فصل هفتم: بررسی Unit Testing مربوط به کنترل کننده های ASP.NET Core
  • مقدمه
  • معرفی پوشش کد (Code Coverage) و تصمیم گیری در رابطه با اینکه چه چیزی را Unit Test کنیم
  • مروری بر Testing مربوط به MVC Controller ها
  • آموزش عملی: بررسی ViewResult در زمان Test
  • آموزش عملی: بررسی انواع ViewModel در زمان Test
  • آموزش عملی: بررسی ViewModel Content در زمان Test
  • آموزش عملی: ترکیب کردن Assert های مربوط به اکشن های Controler ها در یک Unit Test واحد و Test کردن کدهای Mapping
  • آموزش عملی: کار کردن با وابستگی های AutoMapper
  • آموزش عملی: Test کردن Validation و ModelState
  • Test کردن با استفاده از HttpContext
  • آموزش عملی: Test کردن با استفاده از HttpContext و داده های زائد
  • آموزش عملی: Test کردن با استفاده از HttpContext.Session
  • آموزش عملی: Test کردن با استفاده از HttpContext.Feature ها
  • آموزش عملی: Test کردن با استفاده از فراخوانی های HttpClient
  • جمع بندی
فصل هشتم: Unit Test کردن Middleware ها، Filter ها و Service Registration های ASP.NET Core
  • مقدمه
  • Unit Test کردن Middleware
  • آموزش عملی: Unit Test کردن Middleware
  • Unit Test کردن Filter های ASP.NET Core
  • آموزش عملی: Unit Test کردن Filter های ASP.NET Core
  • Unit Test کردن Service Registration ها
  • آموزش عملی: Unit Test کردن Service Registration ها
  • جمع بندی
فصل نهم:یکپارچه کردن Unit Test ها در جریان های Development و Relese ها
  • مقدمه
  • آموزش عملی: اجرا کردن Test ها با استفاده از CLI
  • مقایسه Test Runner ها و Test Framework ها
  • اجرا کردن Test ها به صورت موازی
  • آموزش عملی: موازی سازی در Test Framework ها
  • اجرا کردن Test ها بر روی چندین Target Framework
  • آموزش عملی: اجرا کردن Test ها بر روی چندین Target Framework
  • یکپارچه کردن Unit Test ها در Pipeline های CI/CD
  • آموزش عملی: یکپارچه کردن Unit Test ها در Pipeline های CI/CD
  • جمع بندی
دیدگاه کاربران

دیدگاه ها

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