پرووید
منو

آموزش ساختن Context های قابل نگهداری برای تست ها در سی شارپ

زبان: فارسی (دوبله شده)مترجم: پروویددوبلر: پروویدسطح: مقدماتیمدت زمان: 01:26:27تعداد ویدئوها: 38فایل های پروژه: ناموجود
قیمت:۳٬۹۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش تست نرم‌افزار پیشرفته است که می توانید از تمامی آموزش های آن دیدن کنید.

آموزش ساختن Context های قابل نگهداری برای تست ها در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، ایجاد کردن Context های قابل نگهداری برای انجام تست های خودکار است که با نام اصلی Creating Maintainable Contexts for Automated Testing از شرکت Pluralsight منتشر شده است.

بررسی تست واحد و یا Unit Testing

تست واحد در C# یک عملیات ضروری برای اطمینان از قابل اطمینان بودن و صحت کد در طول فرآیند توسعه است. توسعه‌دهندگان از فریم ورک هایی مانند MSTest و NUnit یا xUnit برای ایجاد و اجرای تست‌های واحد استفاده می‌کنند. این تست ها، تست‌های کوچک و منفصلی هستند و برای اعتبارسنجی عملکرد اجزا یا متدهای مختلف در یک برنامه بزرگ طراحی شده‌اند. این تست‌ها به شناسایی باگ‌ها و مشکلات به طور زود هنگام در فرآیند توسعه کمک می‌کنند و قابلیت نگهداری کد را ترویج می‌دهند و تشخیص ریگرسیون‌ها را تسهیل می‌کنند.

A Tour of the Solution - نمونه ای از بخش The Problem with Test Suites در آموزش ساختن Context های قابل نگهداری برای تست ها در سی شارپ
نمونه ای از بخش «The Problem with Test Suites» در آموزش ساختن Context های قابل نگهداری برای تست ها در سی شارپ

توسعه مبتنی بر تست (TDD) یک روش محبوب در سی شارپ است که در آن توسعه‌دهندگان پیش از پیاده‌سازی کد نرم افزار، تست‌ها را می‌نویسند ئ تضمین می‌کنند که code base با تمرکز بر نیازمندی های مشخص شده تکامل می‌یابد. با به‌کارگیری تست واحد در سی شارپ، توسعه‌دهندگان می‌توانند کیفیت کد را افزایش دهند، فرآیند continuous integration را تسهیل کنند و فرآیند اشکال‌زدایی را ساده‌تر کنند، که تمامی این موارد در نهایت به تقویت کلی قدرت نرم‌افزار کمک کنند.

قابلیت نگهداری در تست ها

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

Demo - From Object Mother to Object Builder - نمونه ای از بخش Evolving an Object Mother into a Builder در آموزش ساختن Context های قابل نگهداری برای تست ها در سی شارپ
نمونه ای از بخش «Evolving an Object Mother into a Builder» در آموزش ساختن Context های قابل نگهداری برای تست ها در سی شارپ

به علاوه، تست‌های واحد قابل نگهداری به همکاری میان تیم‌های توسعه نرم افزار کمک می کنند. این موضوع امکان ادغام ویژگی‌های جدید به code base را ساده تر کرده و احتمال وارد شدن اشکالات و bug ها را کاهش می‌دهد. یک مجموعه قوی از تست‌های واحد نه تنها عملکرد فعلی کد را تایید می‌کند بلکه به عنوان مستند زنده عمل می‌کند و توسعه‌دهندگان را قادر می‌سازد به مرور زمان پروژه را درک کنند و به آن کمک کنند. در نهایت، اولویت دادن به قابلیت نگهداری در تست‌های واحد به معنی سرمایه‌گذاری در پایداری و چابکی بلند مدت پروژه‌های نرم‌افزاری است.

سامان‌دهی داده‌های تست با الگوی Object Mother

آموزش Creating Maintainable Contexts for Automated Testing از مشکلی شروع می‌کند که در مجموعه تست‌های بزرگ به‌تدریج نمایان می‌شود: ساخت داده‌های موردنیاز هر آزمون می‌تواند به کدهای تکراری و دشوار برای اصلاح تبدیل شود. وقتی چندین تست به مجموعه‌ای از اشیا با روابط مشخص نیاز دارند، تعریف جداگانه همان داده‌ها در هر تست باعث می‌شود تغییر مدل برنامه به ویرایش‌های متعدد منجر شود. این آموزش ابتدا مجموعه تست موجود را بررسی و تمیز می‌کند تا بتوانید منشأ پیچیدگی را شناسایی کنید و سپس روش استخراج داده‌های مشترک را دنبال کنید.

الگوی Object Mother در این آموزش به‌عنوان راهی برای متمرکز کردن ساخت داده‌های موردنیاز تست مطرح می‌شود. با استفاده از آن، تست‌ها می‌توانند از داده‌های آماده و قابل استفاده مجدد بهره ببرند، به‌جای اینکه جزئیات ساخت اشیا در هر آزمون تکرار شوند. مباحث تولید سلسله‌مراتب اشیا و روابط Parent-Child نیز نشان می‌دهند که آماده‌سازی داده‌ها همیشه به ساخت یک شیء منفرد محدود نیست. این رویکرد برای پروژه‌هایی مفید است که تست‌های آن‌ها به مدل‌های دامنه پیچیده وابسته‌اند و حفظ سازگاری داده‌ها در سناریوهای مختلف اهمیت دارد.

تبدیل Object Mother به Builder با Fluent Interface

با افزایش تنوع سناریوهای تست، یک Object Mother ممکن است به مجموعه‌ای از متدها و گزینه‌های متعدد تبدیل شود که تغییر دادن داده‌های هر تست را دشوار می‌کند. آموزش مسیر تکامل Object Mother به Object Builder را بررسی می‌کند تا نشان دهد چگونه می‌توان ساخت اشیا را انعطاف‌پذیرتر کرد. در الگوی Builder، مراحل آماده‌سازی شیء به شکل مشخصی تعریف می‌شوند و تست می‌تواند تنها ویژگی‌های مرتبط با سناریوی خود را تغییر دهد. این شیوه به کاهش وابستگی تست‌ها به جزئیات غیرضروری داده‌های اولیه کمک می‌کند و خواندن هدف هر آزمون را آسان‌تر می‌سازد.

موضوع Fluent Interface نیز در کنار Object Builderها بررسی می‌شود تا نحوه بیان زنجیره‌ای تنظیمات و ساخت داده‌ها روشن شود. آموزش علاوه بر مقایسه Object Mother و Object Builder، به استخراج قابلیت‌های مشترک در Base Class و خودکارسازی ایجاد Builder با Code Generation می‌پردازد. تولید کد می‌تواند در شرایطی که ساختارهای تکراری زیادی وجود دارند، بخشی از کار دستی را کاهش دهد؛ هرچند انتخاب آن باید با نیاز پروژه هماهنگ باشد. این مباحث به شما کمک می‌کنند ساختار تست‌ها را بر اساس پیچیدگی داده‌ها طراحی کنید و میان سادگی استفاده، انعطاف‌پذیری و هزینه نگهداری تعادل برقرار سازید.

سرفصل مطالب آموزش ویدئویی ساختن Context های قابل نگهداری برای تست ها در سی شارپ

فصل اول: مقدمه دوره آموزشی
  • مقدمه
فصل دوم: مشکل مربوط به مجموعه ‌های تست
  • مقدمه
  • نرم‌افزار پیچیده است
  • بررسی پروژه این دوره آموزشی
  • بررسی ابزارها و فریم ورک ‌ها
  • بررسی تست ها
  • چالش تست ها
  • آموزش عملی چالش تست ها
  • جمع بندی
فصل سوم: استخراج داده‌های تست به یک Object Mother
  • مقدمه
  • تمیز کردن مجموعه تست موجود
  • تولید مقادیر ساده
  • بررسی Object Mother
  • آموزش عملی Object Mother ها
  • تولید سلسله مراتب اشیا
  • آموزش عملی تولید سلسله مراتب اشیا
  • روابط Parent-Child
  • آموزش عملی روابط Parent-Child
  • جمع بندی
فصل چهارم: تکامل یک Object Mother به یک Builder
  • مقدمه
  • بررسی Object Builder ها و Fluent Interface
  • آموزش عملی تکامل از Object Mother به Object Builder
  • مقایسه Object Mother و Object Builder
  • آموزش عملی تکامل از StateMother به StateBuilder
  • یک Builder یک نقشه است
  • آموزش عملی یک نقشه بسازید
  • تنبل بودن اجرای کد خوب است
  • آموزش عملی Builder های تنبل
  • جمع بندی
فصل پنجم: خودکار سازی ایجاد Builder با Code Generation
  • مقدمه
  • آموزش عملی استخراج قابلیت Base Class
  • آموزش عملی استخراج یک Partial Class
  • آموزش عملی اسکریپت‌های سی شارپ
  • آموزش عملی تولید متد Build
  • آموزش عملی تولید متد Default
  • آموزش عملی تولید متدهای With
  • آموزش عملی ایجاد Builder های جدید
  • جمع بندی
دیدگاه کاربران

دیدگاه ها

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