پرووید
منو

آموزش روش های صحیح تست کدهای EF Core

زبان: فارسی (دوبله شده)مترجم: پروویددوبلر: پروویدسطح: متوسطمدت زمان: 01:13:28تعداد ویدئوها: 31فایل های پروژه: ناموجود
قیمت:۲٬۷۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش تست نرم‌افزار پیشرفته است که می توانید از تمامی آموزش های آن دیدن کنید.

آموزش روش های صحیح تست کدهای EF Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی اصول نوشتن تست برای Entity Framework Core است که با نام اصلی Testing with EF Core از شرکت Pluralsight منتشر شده است.

انجام تست در EF Core با استفاده از In-Memory Database

 جالب است بدانید که تکنولوژی EF Core که به عنوان یک ORM امروزه توسط بسیاری از اپلیکیشن های نوشته شده با تکنولوژی NET Core. مورد استفاده قرار می گیرد دارای قابلیتی است که اجازه می دهد یک database درون حافظه ای و یا in-memory database و مکانیزم تست کردن نرم افزار به سادگی انجام شود. چند نکته در رابطه با database درون حافظه ای EF Core برای انجام unit testing را باید بدانید.

Learning About Different Ways to Test Your Application - نمونه ای از بخش Getting Started with EF Core Testing در آموزش روش های صحیح تست کدهای EF Core
نمونه ای از بخش «Getting Started with EF Core Testing» در آموزش روش های صحیح تست کدهای EF Core
  •  این database به صورت رابطه ای و یا relational کار نمی کند.
  • از تراکنش ها پشتیبانی نمی شود.
  •  امکان اجرا کردن دستورات SQL خام وجود ندارد.
  • این نوع database سرعت بسیار پایینی دارند و perfomance آن خیلی کم است.

انجام تست واحد و یا unit testing بر روی یک تکه کد که داده ها را از database خوانده و یا بر روی آن می نویسد چالش های زیادی را پیش روی برنامه نویسان قرار می دهد. یکی از روش هایی که بسیار مورد استفاده قرار می گرفت test double ها و یا استفاده کردن از mock ها و یا fake ها بود. استفاده کردن از تکنیک mock کردن برای DbContext و یا حتی IQueryable می تواند بسیار دشوار باشد. به همین دلیل در زمان تست کردن DbContext بهتر است که از database درون حافظه ای EF Core استفاده کنیم. این database درون حافظه ای هیچ وابستگی به رفتار های database اصلی برنامه ندارد. فقط به منظور تست کردن مورد استفاده قرار می گیرد.

چرا تست کردن کدهای مبتنی بر EF Core اهمیت دارد؟

EF Core یک ORM برای برنامه‌های .NET است که ارتباط میان کدهای برنامه و Database را ساده‌تر می‌کند. با وجود این، درست کار کردن کدهای مبتنی بر EF Core تنها به اجرای بدون خطای متدها محدود نمی‌شود؛ نحوه تبدیل عبارت‌ها به Query، رفتار عملیات ذخیره‌سازی و تعامل با داده‌ها نیز اهمیت دارند. نوشتن تست برای این بخش‌ها به توسعه‌دهندگان کمک می‌کند مشکلات را زودتر شناسایی کنند و هنگام تغییر کد، از عملکرد مورد انتظار برنامه اطمینان بیشتری به دست آورند.

تست کردن کدهای مرتبط با Database نیازمند انتخاب روشی متناسب با هدف تست است. برخی تست‌ها می‌توانند رفتار یک بخش کوچک از کد را بررسی کنند، در حالی که برخی دیگر برای ارزیابی تعامل با یک موتور پایگاه داده واقعی مناسب‌تر هستند. در این آموزش با رویکردهای مختلف تست در EF Core آشنا می‌شوید و یاد می‌گیرید چرا تفاوت میان محیط تست و محیط واقعی اجرا می‌تواند بر نتیجه آزمون‌ها تأثیر بگذارد. این شناخت برای طراحی تست‌های قابل‌اعتماد در پروژه‌های مبتنی بر .NET اهمیت دارد.

تفاوت تست با EF Core InMemory و SQLite

EF Core InMemory یک ارائه‌دهنده برای نگهداری داده‌ها در حافظه است که امکان اجرای تست بدون نیاز به راه‌اندازی یک Database معمولی را فراهم می‌کند. استفاده از این روش می‌تواند برای بررسی برخی رفتارهای کد و اجرای سریع تست‌ها مناسب باشد، اما نباید آن را معادل یک پایگاه داده رابطه‌ای در نظر گرفت. رفتارهای مربوط به Queryها، محدودیت‌های داده و عملیات پایگاه داده ممکن است با محیط واقعی تفاوت داشته باشند؛ بنابراین، نتیجه موفق یک تست InMemory لزوماً به معنای عملکرد صحیح کد در همه شرایط نیست.

Learning What the EF Core InMemory Database Provider Is - نمونه ای از بخش Unit Testing Your Code with EF Core InMemory در آموزش روش های صحیح تست کدهای EF Core
نمونه ای از بخش «Unit Testing Your Code with EF Core InMemory» در آموزش روش های صحیح تست کدهای EF Core

SQLite گزینه دیگری برای تست کدهای EF Core است که امکان کار با یک Database رابطه‌ای را فراهم می‌کند. این ویژگی باعث می‌شود برخی رفتارهای مرتبط با پایگاه داده واقعی بهتر از طریق تست‌ها بررسی شوند، هرچند SQLite نیز با سایر موتورهای پایگاه داده تفاوت‌هایی دارد. انتخاب میان InMemory و SQLite باید بر اساس نوع رفتار مورد بررسی انجام شود. در این آموزش، هر دو رویکرد بررسی می‌شوند تا بتوانید محدودیت‌های آن‌ها را بشناسید و برای نیازهای مختلف تست، ابزار مناسب‌تری انتخاب کنید.

چگونه تست‌های EF Core قابل‌اعتمادتر بنویسیم؟

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

همچنین بهتر است تست‌ها به شکلی نوشته شوند که نتیجه آن‌ها قابل تکرار و تحلیل باشد. استفاده از داده‌های مشخص، بررسی دقیق خروجی عملیات و توجه به تفاوت ارائه‌دهندگان Database می‌تواند کیفیت فرایند تست را بهبود دهد. در این دوره، با شروع کار با تست‌های EF Core، استفاده از InMemory برای Unit Testing و به‌کارگیری SQLite برای افزایش قابلیت اطمینان آشنا می‌شوید. این مباحث به شما کمک می‌کنند محدودیت‌های هر روش را بهتر درک کنید و راهبرد مناسبی برای تست بخش‌های مختلف برنامه انتخاب کنید.

سرفصل مطالب آموزش ویدئویی روش های صحیح تست کدهای EF Core

فصل اول: مقدمه دوره آموزشی

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

فصل دوم: شروع به کار با تست در EF Core

  • مقدمه
  • پیش نیاز دوره آموزشی
  • بررسی پیش نیاز های تست نرم افزار
  • انجام Unit Testing با EF Core
  • بررسی عملی یک اپلیکیشن
  • جمع بندی

فصل سوم: انجام Unit Testing بر روی کد ها با استفاده از EF Core InMemory

  • مقدمه
  • بررسی EF Core و InMemory Database Provider
  • شروع به کار با تست ها با استفاده از InMemory Database Provider
  • انجام Unit Testing به همراه الگوی Arrange و Act و Assert
  • نوشتن اولین تست با استفاده از InMemory Database Provider
  • نوشتن عملی تست های بیشتر
  • ایزوله کردن عملی تست ها
  • بهبود تست ها با استفاده از چندین DbContext
  • استفاده کردن عملی از چندین DbContext
  • انجام Mocking و محدودیت های آن در استفاده از InMemory Database Provider
  • تست کردن عملی refresh all integrity
  • مزایا و معایب استفاده کردن از InMemory Database Provider

فصل چهارم: بهبود قابلیت اطمینان EF Core با استفاده از SQLite

  • مقدمه
  • معرفی کردن SQLite
  • انجام عملی Unit Testing با استفاده از SQLite
  • استفاده از چندین DbContext
  • تست کردن عملی Referential Integrity
  • اضافه کردن عملی EF Core Logging
  • پیاده سازی Logging در Test Explorer
  • محدودیت های SQLite
  • جمع بندی
دیدگاه کاربران

دیدگاه ها

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