لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش تست واحد PHP با PHPUnit
PHP Unit Testing with PHPUnit
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
واحد کد PHP خود را با استفاده از چارچوب تست PHPUnit آزمایش کنید: اشکالات را سریع و زودتر پیدا کنید و کیفیت کد خود را بهبود بخشید. تستهای خودکار برای توابع و کلاسهای خود بنویسید کد بهتری با اشکالات کمتر بنویسید، در زمان کمتر کدی را با استفاده از برنامهنویسی تستمحور ایجاد کنید. نیازها: شما باید PHP، از جمله کدهای شی گرا را بدانید، خوشحال باشید که دستورات را در ترمینال/خط فرمان روی رایانه خود اجرا کنید.
اگر شما یک توسعه دهنده PHP هستید و می خواهید یاد بگیرید که چگونه کد بهتری بنویسید و باگ های کمتری داشته باشید، باید بدانید که چگونه تست های واحد بنویسید.
نحوه تست واحد کد PHP خود را با استفاده از چارچوب تست PHPUnit بیاموزید.
آزمون های واحد را بیاموزید
با نحوه نوشتن تست های واحد با استفاده از PHPUnit آشنا شوید
یک مجموعه آزمایشی برای توابع و کلاسهای PHP بسازید
روش های آزمایش را به یکدیگر وابسته کنید
از دوبل های آزمایشی استفاده کنید: تمسخر و خرد، از جمله نحوه استفاده از تمسخر
بیاموزید که چگونه و چرا باید از تزریق وابستگی استفاده کنید
آموزش توسعه مبتنی بر آزمایش (TDD)
با نحوه آزمایش روشها و ویژگیهای محافظت شده و خصوصی (و اینکه آیا واقعاً باید یا نه!) بیاموزید.
با نحوه آزمایش کلاس های انتزاعی آشنا شوید
مهارتی که به شما امکان میدهد کد با کیفیت بالاتر، در زمان کوتاهتر، با مستندات بهتر و اشکالات کمتر بنویسید.
یادگیری نحوه نوشتن تست های واحد برای کد شما باعث می شود کد بهتری بنویسید. با تستهای خودکار، میتوانید باگها را راحتتر پیدا کنید، و اگر چیزی را بشکنید بلافاصله متوجه خواهید شد.
بسیاری از توسعه دهندگان با تجربه برای کد خود تست واحد می نویسند. این یک روش تکرارپذیر برای بررسی این است که آیا کد آنطور که در نظر گرفته شده است کار می کند، و همچنین به عنوان سند عمل می کند. بسیاری از پروژههای محبوب PHP مانند WordPress و Moodle مورد آزمایش واحد قرار میگیرند، و اگر از چارچوبهایی مانند Laravel یا Symfony استفاده میکنید، اینها یکپارچهسازی دقیق با چارچوب آزمایشی PHPUnit ارائه میکنند.
محتوا و نمای کلی
در حال حاضر چگونه کد خود را آزمایش می کنید؟ شاید شما کد خود را در مرورگر اجرا می کنید، از var_dump زیاد استفاده می کنید و غیره. مشکل این است که شما فقط تمایل به آزمایش کد جدید دارید - به عقب برنمیگردید و کدهای قدیمی را آزمایش نمیکنید. اگر کد جدیدی اضافه کنید که کد قدیمی را خراب کند، چه؟
با تستهای واحد خودکار، کنترل بیشتری خواهید داشت. اگر کد جدید شما چیزی را شکست، بلافاصله متوجه خواهید شد. میتوانید باگها را راحتتر برطرف کنید و در نتیجه زمان توسعه را کاهش دهید.
تستها نیز مانند نظرات، نوعی سند هستند: آنها نشان میدهند که چرا کد به این شکل نوشته شده است.
مناسب برای همه برنامهنویسان PHP، با یادگیری اصول اولیه تست واحد کد PHP، از جمله نحوه استفاده از ادعاها شروع میکنید.
سپس یاد خواهید گرفت که چگونه توابع و کلاسها را آزمایش کنید و چگونه چارچوب PHPUnit را پیکربندی کنید.
در ادامه نحوه استفاده از وابستگیهای آزمایشی، وسایل ثابت و نحوه آزمایش استثناها را خواهید آموخت.
همچنین خواهید دید که دوبل های آزمایشی چگونه کار می کنند - اشیاء ساختگی و روش های خرد .
سپس یاد خواهید گرفت که چگونه با استفاده از توسعه مبتنی بر آزمایش کد بنویسید - ابتدا تست ها را بنویسید، سپس کد را.
همچنین خواهید آموخت که چگونه روشها و ویژگیهای کلاس محافظت شده و خصوصی را آزمایش کنید و اینکه آیا این واقعاً ایده خوبی است یا خیر.
آزمایش روشهای استاتیک به تفصیل پوشش داده شده است، از جمله چندین روش برای مقابله با وابستگیهای استاتیک.
وقتی دوره را کامل کردید، میتوانید برای کد PHP موجود خود، تستهای واحد بنویسید و با استفاده از توسعه مبتنی بر آزمایش، کد جدیدی ایجاد کنید.
با تمام کدهای نشان داده شده در سخنرانیها تکمیل کنید، میتوانید در کنار مربی کار کنید و پس از پایان دوره، گواهی پایان دوره قابل تأیید دریافت خواهید کرد.
همچنین، همیشه در طول دوره، به مربی در بخش Q A دسترسی دارید تا در مورد هر موضوع مرتبط با دوره کمک بخواهید.
اکنون ثبت نام کنید و تست واحد را به مجموعه مهارت های PHP خود اضافه کنید!
سرفصل ها و درس ها
معرفی و راه اندازی پروژه
Introduction and project setup
معرفی
Introduction
نصب PHP و Composer (ویندوز)
Install PHP and Composer (Windows)
نصب PHP و Composer (macOS)
Install PHP and Composer (macOS)
PHP و Composer (لینوکس) را نصب کنید
Install PHP and Composer (Linux)
یک پوشه پروژه ایجاد کنید و PHPUnit را نصب کنید
Create a project folder and install PHPUnit
تست واحد با PHPUnit: اصول اولیه
Unit testing with PHPUnit: the basics
اولین آزمون خود را بنویسید و اجرا کنید: مقدمه ای بر ادعاها
Write and run your first test: an introduction to assertions
تست یک تابع: با استفاده از چند ادعا
Test a function: using multiple assertions
تست کنید که نتایج نادرست برگردانده نمی شود: با استفاده از روش های آزمایشی متعدد
Test that incorrect results are not returned: using multiple test methods
تست یک کلاس: رفع اشکال از طریق آزمایش
Test a class: fixing bugs through testing
نحوه نامگذاری روش های آزمایشی
How to name your test methods
تست واحد با PHPUnit: اصول اولیه
Unit testing with PHPUnit: the basics
اولین روش تست PHPUnit خود را بنویسید
Write your first PHPUnit test method
پیکربندی محیط تست PHPUnit
Configuring the PHPUnit test environment
PHPUnit test runner: گزینه های مختلف را هنگام اجرای تست ها مشخص کنید
The PHPUnit test runner: specify different options when running tests
پیکربندی PHPUnit: فایل پیکربندی XML
Configure PHPUnit: the XML configuration file
کلاس های بارگذاری خودکار با استفاده از Composer آزمایش می شوند
Autoload classes being tested using Composer
پیکربندی محیط تست PHPUnit
Configuring the PHPUnit test environment
وابستگی ها، وسایل و استثنائات را تست کنید
Test dependencies, fixtures and exceptions
تست واحد یک کلاس صف
Unit test a queue class
وابستگی های تست: یک روش تست را به دیگری وابسته کنید
Test dependencies: make one test method dependent on another
وسایل: وضعیت شناخته شده تست ها را با استفاده از setUp و tearDown تنظیم کنید
Fixtures: set up the known state of the tests using setUp and tearDown
به راحتی یک روش آزمایشی جدید با استفاده از دستگاه تست اضافه کنید
Easily add a new test method using the test fixture
به اشتراک گذاری وسایل بین تست ها برای داده های پرمصرف منابع
Share fixtures between tests for resource-intensive data
تست استثناها: انتظار می رود کد یک استثنا ایجاد کند
Testing exceptions: expecting code to throw an exception
وابستگی ها، وسایل و استثنائات را تست کنید
Test dependencies, fixtures and exceptions
وسایل تست
Test fixtures
تست دوبل: تمسخر و خرد
Test doubles: mocks and stubs
دو برابر تست: ایجاد اشیاء ساختگی برای حذف وابستگی به منابع خارجی
Test doubles: create mock objects to remove dependencies on external resources
تزریق وابستگی: اشیایی را تزریق می کند که یک کلاس به آنها وابسته است
Dependency injection: inject objects that a class depends on
تست تعاملات شی: بررسی نحوه استفاده از یک وابستگی
Test object interactions: verify how a dependency is used
ایجاد شیء ساختگی را سفارشی کنید: متد getMockBuilder
Customise the creation of the mock object: the getMockBuilder method
تست دوبل: تمسخر و خرد
Test doubles: mocks and stubs
تمسخر - یک چارچوب تمسخر آمیز جایگزین با یک نحو قابل خواندن برای انسان
Mockery - an alternative mocking framework with a human-readable syntax
وابستگی را مسخره کنید که هنوز وجود ندارد
Mock a dependency that doesn't exist yet
استفاده از Mockery: نصب و ادغام با PHPUnit
Using Mockery: installation and integration with PHPUnit
استفاده از تمسخر برای تمسخر وابستگی که هنوز وجود ندارد
Using Mockery to mock a dependency that doesn't exist yet
PHPUnit vs Mockery: برگرداندن مقادیر مختلف در فراخوانی متدهای بعدی
PHPUnit vs Mockery: Returning different values on subsequent method calls
جاسوسان تمسخر آمیز: در یک تماس بعد از رویداد اظهار نظر کنید
Mockery Spies: Make assertions on a call after the event
توسعه آزمایش محور
Test-driven development
توسعه آزمایش محور: راه اندازی یک پروژه TDD
Test-driven development: set up a TDD project
ابتدا تست را بنویسید سپس کد را بنویسید تا موفق شود
Write the test first, then write the code to make it pass
کد کافی برای قبولی در آزمون بنویسید
Write just enough code to make the test pass
تست ها و کد Refactor را اضافه کنید تا زمانی که تست ها قبول شوند
Add tests and refactor code until the tests pass
تست های بیشتر و عملکرد کد برنامه را اضافه کنید
Add more tests and application code functionality
یک آزمایش دیگر، عملکرد بیشتر، و بازسازی بیشتر
Another test, more functionality, and more refactoring
ارائه دهندگان داده: یک روش آزمایشی را با مجموعه ای از داده ها ارائه دهید
Data providers: provide a test method with a collection of data
آزمایش روش ها و ویژگی های غیر عمومی و کلاس های انتزاعی
Testing non-public methods and properties and abstract classes
آزمایش روش های غیر عمومی
Testing non-public methods
آزمایش روش های محافظت شده با استفاده از وراثت
Testing protected methods using inheritance
آزمایش روش های خصوصی با استفاده از بازتاب
Testing private methods using reflection
آزمایش روش های خصوصی با آرگومان ها با استفاده از بازتاب
Testing private methods with arguments using reflection
تست ویژگی های محافظت شده و خصوصی
Testing protected and private attributes
تست کلاس های انتزاعی
Testing abstract classes
تست روش های استاتیک
Testing static methods
تست روش های استاتیک
Testing static methods
مشکل روش های ایستا: وابستگی ها و تمسخر
The problem with static methods: dependencies and mocking
گزینه 1: کد Refactor برای حذف روش استاتیک
Option 1: Refactor code to remove the static method
گزینه 2: وابستگی را به عنوان فراخوانی منتقل کنید
Option 2: Pass the dependency as a callable
گزینه 3: از mockery alias mocks برای حذف فراخوانی متد استاتیک استفاده کنید
Option 3: Use Mockery alias mocks to stub the static method call
نتیجه
Conclusion
نتیجه
Conclusion
سخنرانی پاداش: تخفیف میزبانی پی اچ پی
Bonus Lecture: discount PHP hosting
یودمی یکی از بزرگترین پلتفرمهای آموزشی آنلاین است که به میلیونها کاربر در سراسر جهان امکان دسترسی به دورههای متنوع و کاربردی را فراهم میکند. این پلتفرم امکان آموزش در زمینههای مختلف از فناوری اطلاعات و برنامهنویسی گرفته تا زبانهای خارجی، مدیریت، و هنر را به کاربران ارائه میدهد. با استفاده از یودمی، کاربران میتوانند به صورت انعطافپذیر و بهینه، مهارتهای جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.
یکی از ویژگیهای برجسته یودمی، کیفیت بالای دورهها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد میدهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و میتوانند به بهترین شکل ممکن از آموزشها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرمهای آموزشی آنلاین، به افراد امکان میدهد تا به راحتی و با کیفیت، مهارتهای مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.
نمایش نظرات