برنامه نویسی با Rust چالش برانگیز است. حتی پس از صرف زمان قابل توجهی برای یادگیری و ساختن برنامهها با Rust، ایجاد تستهای واحد کاملاً مسخرهشده میتواند بسیار دشوار باشد.
یک تست واحد واقعی باید تماسهایش را مسخره کند و فقط به واحد تحت آزمایش اجازه دهد کد واقعی را اجرا کند. اما چگونه می توان این کار را با Rust انجام داد؟ تزریق وابستگی به نوعی قابل انجام است، اما برخورد با ویژگیها و محدودیتهای استفاده از آنها گاهی اوقات میتواند شبیه یک مسابقه کشتی باشد.
اگرچه Rust شکل خود را از رابط دارد، Rust یک زبان برنامه نویسی شی گرا نیست و ارثی ندارد - که می تواند نحوه استفاده از Traits را برای اجرای الگوهایی مانند Dependency Injection و ایجاد مدل های آزمایشی نامشخص کند. علاوه بر این، استفاده از توابع async از طریق Tokio Runtime پیچیدگی بیشتری به تستهای ما میافزاید. چگونه تست های خود را مجبور کنم تا زمانی که متغیرهای خاصی تنظیم شوند صبر کنند؟ چگونه می توانم وسایلی را که به صورت سراسری در تست های فردی تنظیم شده اند به اشتراک بگذارم؟
در این دوره آموزشی با الگوهای طراحی مختلفی آشنا میشویم که میتوانیم از آنها برای کمک به ساختن تستهای واحد مبتنی بر Rust که واقعاً مسخرهشده هستند، استفاده کنیم، و نه تستهای ادغام که به عنوان تستهای واحد ظاهر میشوند. همچنین در مورد چندین جعبه یاد خواهیم گرفت که میتوانند به مواردی مانند از پیش تنظیم متغیرهای سراسری برای استفاده در آزمایشهای ما قبل از اجرای آزمایشها، جعبههای تمسخرآمیز که میتوانند به ما در تقلیل سرویسها به ما کمک کنند، و ابزارهایی که میتوانند به تنظیم مقادیر تصادفی کمک کنند، آشنا میشویم. استحکام را به تست های ما اضافه کنید.
محتوای جایزه نحوه استفاده از Generics را برای تزریق Mocks به اجرای داخلی توابع نشان می دهد. این به ما امکان میدهد تا تماسهای داخلی را در داخل توابع بدون تغییر عملاً تغییر دادن خود تابع کار، مسخره کنیم.
توسعه دهنده ارشد Full-Stack
نمایش نظرات