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

Writing Highly Maintainable Unit Tests

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: این دوره به شما می آموزد که چگونه با رشد و توسعه کد تولید خود، تست های قابل نگهداری و پایداری را توسعه دهید. از دانشی که این دوره به شما می دهد استفاده کنید و به تئوری و مهارت های عملی مورد نیاز خود برای شروع ساخت مجموعه های آزمایشی قابل مدیریت برای زندگی خود مجهز شوید. محصول شما. در این دوره آموزشی، Writing Highly Maintainable Unit Tests، تکنیک های پیشرفته در تست واحد را یاد خواهید گرفت. ابتدا، نحوه تست کردن کد تولید را در وهله اول بررسی خواهید کرد. در مرحله بعد، خواهید فهمید که چگونه می‌توانید آزمایش‌ها را از تغییرات پیاده‌سازی آینده نجات دهید. سپس، یاد خواهید گرفت که چگونه از تقریباً همه کدهای تکراری در تست ها جلوگیری کنید. در نهایت، شما کتابخانه های آزمایشی قابل استفاده مجدد را طراحی خواهید کرد. در پایان این دوره، درک عمیقی را پردازش خواهید کرد که تست های شما را از بسیاری جهات بهتر می کند.

سرفصل ها و درس ها

بررسی اجمالی دوره Course Overview

  • بررسی اجمالی دوره Course Overview

درک درستی کد قابل اثبات Understanding Provable Code Correctness

  • قرار دادن تست ها در قاب Putting Tests into the Frame

  • بررسی نسخه Version Check

  • آنچه در این دوره دنبال می شود What Follows in This Course

  • اثبات درستی کد Proving Correctness of Code

  • تست صحت در زمان اجرا Testing Correctness at Run Time

  • اختراع تست های خودکار Inventing Automated Tests

  • اختراع دونده آزمون Inventing the Test Runner

  • خلاصه Summary

اهمیت دانستن اینکه چه چیزی را تست کنید The Importance of Knowing What to Test

  • مشکل انتخاب چه چیزی برای آزمایش The Problem of Choosing What to Test

  • تغییر کلاس برای پشتیبانی از آزمون دولتی Changing the Class to Support State Testing

  • اجرای آزمون دولتی Implementing a State Test

  • در مورد ادعاهای متعدد در آزمون یک واحدی On Multiple Assertions in One Unit Test

  • تکمیل آزمون های دولتی Completing State Tests

  • اجرای آزمون تعامل از طریق مشتق Implementing an Interaction Test Through Derivation

  • اجرای تست تعامل از طریق رابط Implementing an Interaction Test Through Interface

  • درک رگرسیون Understanding Regression

  • خلاصه Summary

مزایا و معایب تست جعبه سفید The Pros and Cons of White-Box Testing

  • بکارگیری استراتژی پوشش شعب Applying Branch Coverage Strategy

  • ارزیابی سودمندی تمسخرهای خودکار Assessing Usefulness of Automatic Mocks

  • ارزیابی سودمندی ماک های دستی Assessing Usefulness of Manual Mocks

  • ارزیابی قابلیت نگهداری ماک های خودکار در مقابل دستی Assessing Maintainability of Automatic vs. Manual Mocks

  • با تکیه بر کامپایلر و ماک های خودکار Leaning on the Compiler and Automatic Mocks

  • مثال: زمان انتزاع Example: Abstracting Time

  • خلاصه Summary

مدل سازی وابستگی های کلاس در آزمون ها Modeling Class Dependencies in Tests

  • کله زدن در مقابل تمسخر وابستگی ها Stubbing vs. Mocking Dependencies

  • اجازه دهید وابستگی ها از طریق Refactoring رشد کنند Letting Dependencies Grow Through Refactoring

  • ارزیابی تست های تعامل Evaluating Interaction Tests

  • درک طول عمر یک وابستگی Understanding Lifetime of a Dependency

  • اجتناب از تست های غیر ضروری واحد Avoiding Unnecessary Unit Tests

  • آزمایش جفت موقت بین فراخوانی روش Testing Temporal Coupling Between Method Calls

  • خلاصه Summary

به دست آوردن انعطاف پذیری با آزمایش در برابر انواع داده های انتزاعی Gaining Resilience by Testing Against Abstract Data Types

  • معرفی انواع داده های انتزاعی Introducing Abstract Data Types

  • نوشتن آزمون های واحد در مقابل نوع داده انتزاعی Writing Unit Tests Against the Abstract Data Type

  • جایگزینی کل کلاس بتن Replacing Entire Concrete Class

  • اجرای متفاوت یک نوع داده انتزاعی Varying Implementation of an Abstract Data Type

  • گسترش نوع داده انتزاعی Extending the Abstract Data Type

  • بررسی موارد تست منفی Investigating Negative Test Cases

  • ابداع پیش شرط ها Inventing Preconditions

  • خلاصه Summary

تست در برابر رابط ها برای ساده سازی تعمیر و نگهداری Testing Against Interfaces to Simplify Maintenance

  • درک گزینه های ممکن هنگام استخراج یک کلاس Understanding Possible Options When Deriving a Class

  • معرفی کلاس های تست پایه و مشتق شده Introducing Base and Derived Test Classes

  • وقتی پیاده سازی بر انتزاع تأثیر می گذارد When Implementation Affects Abstraction

  • جداسازی نیازهای کاربردی از غیر عملکردی Separating Functional from Non-functional Requirements

  • تکمیل تعریف نوع داده انتزاعی Completing the Definition of Abstract Data Type

  • ابداع توسعه انتزاعی آزمایش محور Inventing the Abstract-Test-Driven Development

  • تست های رابط در پرتو اصل جایگزینی لیسکوف Interface Tests in Light of the Liskov Substitution Principle

  • خلاصه Summary

پیاده سازی رابط های انتزاعی سبک TDD Implementing Abstract Interfaces TDD Style

  • اجرای وراثت Implementing Inheritance

  • استفاده از آزمون های واحد انتزاعی در TDD Using Abstract Unit Tests in TDD

  • پیاده سازی رابط به سبک TDD TDD-style Interface Implementation

  • استفاده از TDD برای کشف تست های گمشده Applying TDD to Discover Missing Tests

  • چند کلمه در مورد نامگذاری کلاس ها و رابط ها A Word About Naming Classes and Interfaces

  • Refactoring یک کلاس تحت پوشش آزمون های انتزاعی Refactoring a Class Covered by Abstract Tests

  • تست های نوشتن در مقابل فهرست چکیده Writing Tests Against Abstract List

  • بحث در مورد مزایای کلاس تست های پایه Discussing the Benefits of Base Tests Class

  • خلاصه Summary

تست انطباق با اصول طراحی Testing Compliance to Design Principles

  • اختراع تست های الگوی طراحی Inventing Design Pattern Tests

  • پیاده سازی تست های الگوی طراحی Implementing the Design Pattern Tests

  • تست تمام جنبه های یک الگوی طراحی Testing All Aspects of a Design Pattern

  • تعریف معنایی نوع ارزش Defining Value-typed Semantic

  • طراحی آزمون های برابری Designing the Equality Tests

  • تعریف قوانین آزمون برابری Defining Equality Testing Rules

  • اجرای کتابخانه آزمون برابری Implementing Equality Testing Library

  • با استفاده از کتابخانه تست برابری Using the Equality Testing Library

  • خلاصه Summary

طراحی بر اساس قرارداد از دیدگاه آزمایش: تئوری الزام آور به عمل Design by Contract from Testing Perspective: Binding Theory to Practice

  • کشف آزمایشات غیرممکن Discovering Impossible Tests

  • درک شرایط خطا Understanding Error Conditions

  • تقسیم استثنائات Division of Exceptions

  • تعریف پیش شرط ها و پسشرط ها Defining Preconditions and Postconditions

  • اجتناب از بررسی شرایط با قراردادها Avoiding Condition Checks with Contracts

  • قراردادهای ارثی Inheriting Contracts

  • اعمال قراردادها در یک کلاس تولیدی Applying Contracts to a Production Class

  • اثبات پیش شرط ها Asserting the Preconditions

  • اجرای قراردادها در کد تولید Implementing Contracts in Production Code

  • حذف تست های واحد اضافی Removing Superfluous Unit Tests

  • خلاصه Summary

  • خلاصه دوره Course Summary

نمایش نظرات

آموزش نوشتن تست های واحد بسیار قابل نگهداری
جزییات دوره
6h 15m
78
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
157
4.7 از 5
دارد
دارد
دارد
Zoran Horvat
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Zoran Horvat Zoran Horvat

مدیرعامل و مشاور اصلی در Coding Helmet s.p.r.l.