نوشتن تستهای واحد بخش بزرگی از توسعه دهنده نرمافزار حرفهای بودن است. این دوره به شما یاد میدهد که چگونه با استفاده از Catch2، یک فریمورک ساده و در عین حال قدرتمند تست واحد، تستهای واحد خوانا و قوی بنویسید.
آنچه یاد خواهید گرفت:
نوشتن آزمونهای واحد بخش بزرگی از یک توسعه دهنده نرمافزار خوب بودن. متأسفانه، تست واحد در C++ چندانبی اهمیت نیست و فریمورکهای تست واحد خوب به سختی پیدا میشود. در این دوره، C++ Unit Testing Fundamentals Using Catch2، یاد خواهید گرفت که چگونه تستهای واحد قوی را با استفاده از Catch2 بنویسید، یک فریمورک ساده برای استفاده و در عین حال انعطاف پذیر و قدرتمند تست واحد برای C++. شما خواهید آموخت که چه چیزی Catch2 را از سایر فریمورکهای xUnit متفاوت میکند و چگونه میتوان از آن برای نوشتن تستهای واحد برای کد ++C خود استفاده کرد. همچنین نحوه اجرای Catch2 از خط فرمان، نحوه استفاده از فیکسچرهای تست و نحوه ایجاد تستهای قابل نگهداری را مشاهده خواهید کرد. هنگامی که این دوره را به پایان رساندید، دانش پایهای در مورد Catch2 و تست واحد در ++C خواهید داشت که به شما کمک میکند کد ++C بهتر و تمیزتر ایجاد کنید.
نمونه ویدیوی آموزشی ( زیرنویسها جدا از ویدیو است و میتوانید آنرا نمایش ندهید ) :
[ENGLISH]
01 Course Overview [4mins]
01-01 Course Overview [2mins]
01-02 Course Overview [2mins]
02 Introducing Catch [20mins]
02-01 Version Check [0mins]
02-02 Course Introduction [1mins]
02-03 Who Is This Course For? [1mins]
02-04 Course Overview [1mins]
02-05 Introducing Unit Tests [2mins]
02-06 Why Write Automated Tests? [2mins]
02-07 Introducing Catch [3mins]
02-08 Getting Started with Catch [1mins]
02-09 Demo: Getting Started with Catch [1mins]
02-10 Writing Tests Using Catch [1mins]
02-11 Sample Project Description [1mins]
02-12 Demo: Writing Unit Tests Using Catch [3mins]
02-13 Comparing Catch to Traditional Unit Testing Frameworks [2mins]
02-14 Summary [1mins]
03 Organizing Your Tests Using Catch [29mins]
03-01 Module Overview [2mins]
03-02 Why You Should Care About the Test`s Names [2mins]
03-03 Bad Test Names to Avoid [2mins]
03-04 Writing Good Unit Test Names [3mins]
03-05 Executing Catch from the Command Line [3mins]
03-06 Demo: Executing Catch from the Command Line [3mins]
03-07 Adding Tags to Your Tests [3mins]
03-08 Catch`s Special Tags [3mins]
03-09 Demo: Using Tags [4mins]
03-10 Creating Tag Aliases [1mins]
03-11 More Command Line Arguments [2mins]
03-12 Summary [1mins]
04 Asserting Using Catch [32mins]
04-01 Module Overview [2mins]
04-02 Why You Should Care About Test Failures [2mins]
04-03 Is It Okay to Use Multiple Assertions in One Test? [5mins]
04-04 Using REQUIRE and CHECK [1mins]
04-05 How to Handle Multiple Assertions in One Test [1mins]
04-06 Demo: Handling Multiple Assertions in One Test [3mins]
04-07 Asserting for Exceptions [2mins]
04-08 DEMO: Asserting for Exceptions [2mins]
04-09 Using Matchers [7mins]
04-10 Adding More Information Using Logging Macros [3mins]
04-11 Using String Conversions [3mins]
04-12 Summary [1mins]
05 Handling Duplicate Code [39mins]
05-01 Module Overview [1mins]
05-02 Code Duplication in Unit and Integration Tests [4mins]
05-03 DRY vs. DAMP [2mins]
05-04 Using Test Fixtures [3mins]
05-05 Demo: Using Test Fixture [2mins]
05-06 The Problems of Using Test Fixtures [3mins]
05-07 Using Sections [2mins]
05-08 Demo: Using Sections [2mins]
05-09 Writing Data-driven Tests Using data Generators [6mins]
05-10 Demo: Using Data Generators [5mins]
05-11 Writing Type Parameterized Tests [2mins]
05-12 Introducing BDD [4mins]
05-13 Writing BDD Scenarios Using Catch [1mins]
05-14 Demo: Writing BDD Scenarios Using Catch [1mins]
05-15 Summary [1mins]
[فارسی]
01 بررسی اجمالی دوره [4 دقیقه]
01-01 بررسی اجمالی دوره [2 دقیقه]
01-02 بررسی اجمالی دوره [2 دقیقه]
02 معرفی Catch [20 دقیقه]
02-01 بررسی نسخه [0 دقیقه]
02-02 معرفی دوره [1 دقیقه]
02-03 این دوره برای چه کسانی است؟ [1 دقیقه]
02-04 بررسی اجمالی دوره [1 دقیقه]
02-05 معرفی آزمونهای واحد [2 دقیقه]
02-06 چرا تستهای خودکار بنویسیم؟ [2 دقیقه]
02-07 معرفی Catch [3 دقیقه]
02-08 شروع کار با Catch [1 دقیقه]
02-09 نسخهی نمایشی- شروع کار با Catch [1 دقیقه]
02-10 تستهای نوشتاری با استفاده از Catch [1 دقیقه]
02-11 نمونه شرح پروژه [1 دقیقه]
02-12 نسخهی نمایشی- نوشتن تستهای واحد با استفاده از Catch [3 دقیقه]
02-13 مقایسه Catch با فریمورکهای تست واحد سنتی [2 دقیقه]
02-14 خلاصه [1 دقیقه]
03 سازماندهی تستهای خود با استفاده از Catch [29 دقیقه]
03-01 نمای کلی ماژول [2 دقیقه]
03-02 چرا باید به نام آزمون اهمیت دهید [2 دقیقه]
03-03 نامهای تست بدی که باید از آنها اجتناب کنید [2 دقیقه]
03-04 نوشتن نامهای آزمون واحد خوب [3 دقیقه]
03-05 اجرای Catch از خط فرمان [3 دقیقه]
03-06 نسخهی نمایشی- اجرای Catch از خط فرمان [3 دقیقه]
03-07 افزودن برچسب به تستهای خود [3 دقیقه]
03-08 برچسبهای ویژه Catch [3 دقیقه]
03-09 نسخهی نمایشی- استفاده از برچسبها [4 دقیقه]
03-10 ایجاد نام مستعار برچسب [1 دقیقه]
03-11 آرگومانهای بیشتر خط فرمان [2 دقیقه]
03-12 خلاصه [1 دقیقه]
04 ادعا با استفاده از Catch [32 دقیقه]
04-01 نمای کلی ماژول [2 دقیقه]
04-02 چرا باید به شکستهای تست اهمیت دهید [2 دقیقه]
04-03 آیا استفاده از چندین ادعا در یک آزمون اشکالی ندارد؟ [5 دقیقه]
04-04 استفاده از REQUIRE و CHECK [1 دقیقه]
04-05 نحوه رسیدگی به ادعاهای متعدد در یک آزمون [1 دقیقه]
04-06 نسخهی نمایشی- مدیریت چندین ادعا در یک تست [3 دقیقه]
04-07 ادعای استثناء [2 دقیقه]
04-08 نسخه آزمایشی- ادعا برای استثناها [2 دقیقه]
04-09 استفاده از Matchs [7 دقیقه]
04-10 افزودن اطلاعات بیشتر با استفاده از ثبت ماکروها [3 دقیقه]
04-11 استفاده از تبدیل رشته [3 دقیقه]
04-12 خلاصه [1 دقیقه]
05 مدیریت کد تکراری [39 دقیقه]
05-01 نمای کلی ماژول [1 دقیقه]
05-02 تکرار کد در تستهای واحد و ادغام [4 دقیقه]
05-03 DRY در مقابل DAMP [2 دقیقه]
05-04 استفاده از وسایل تست [3 دقیقه]
05-05 نسخهی نمایشی- استفاده از دستگاه تست [2 دقیقه]
05-06 مشکلات استفاده از تجهیزات تست [3 دقیقه]
05-07 استفاده از بخشها [2 دقیقه]
05-08 نسخهی نمایشی- استفاده از بخشها [2 دقیقه]
05-09 نوشتن تستهای داده محور با استفاده از تولید کننده داده [6 دقیقه]
05-10 نسخهی نمایشی- با استفاده از تولید کننده داده [5 دقیقه]
05-11 تستهای پارامتری نوع نوشتن [2 دقیقه]
05-12 معرفی BDD [4 دقیقه]
05-13 نوشتن سناریوهای BDD با استفاده از Catch [1 دقیقه]
05-14 نسخهی نمایشی- نوشتن سناریوهای BDD با استفاده از Catch [1 دقیقه]
05-15 خلاصه [1 دقیقه]
Dror یک معمار نرمافزار آزاد است. او بیش از یک دهه است که به طور حرفهای نرمافزار مینویسد و در طی آن برای غولهای صنعتی مانند اینتل و SAP و همچنین شرکتهای کوچک استارتاپی کار کرده است. او دانش گستردهای در بسیاری از زبانهای برنامه نویسی و پلتفرمها از جمله ++C، اسمبلی، دات نت (C#/VB) و جاوا دارد. Dror در متدولوژیهای agile و شیوههای مهندسی نرمافزار متخصص است. زمانی که کد نمینویسد، Dror به توسعه دهندگان آموزش میدهد و دورههایی در مورد کد پاک، تست واحد، الگوهای طراحی، اشکال زدایی و TDD/BDD برگزار میکند. Dror در سراسر جهان درباره توسعه نرم افزار، متدولوژیهای Agile و طراحی آزمایش محور سخنرانی میکند. Dror در وبلاگ خود (http://blog.drorhelper.com) در مورد زبانهای برنامه نویسی، ابزارهای توسعه نرم افزار، کد پاک، نوشتن کد با هدایت تستها، و هر چیز دیگری که برایش جالب است مینویسد.