ایجاد داده های ساختگی خود را در تست ها با @lifeiscontent/to-mocked ساده کنید
آیا زمان زیادی را صرف ساختن داده های ساختگی پیچیده برای تست های خود می کنید؟ آیا اغلب مطمئن می شوید که داده های ساختگی به طور دقیق انواع واقعی را منعکس می کنند، اما احساس می کنید که این یک فرآیند خسته کننده و مستعد خطا است؟ اینجاست که بسته @lifeiscontent/to-mocked وارد میشود.
toMocked
یک تابع کاربردی TypeScript است که به طور خاص برای ساده کردن ایجاد ساختارهای داده مسخره شده برای آزمایش طراحی شده است. این طرح برای رسیدگی به چالشهای ناشی از تولید دادههای ساختگی پیچیده طراحی شده است. به جای ساخت دستی کل یک شی برای آزمایش، این تابع به شما امکان می دهد نوع شی را مشخص کنید و فقط داده های لازم را که واقعاً در آزمایش استفاده می شود ارائه دهید.
الف را در نظر بگیرید User
به عنوان مثال نوع:
type User = {
name: string;
age: number;
address: {
city: string;
country: string;
};
};
شما به راحتی می توانید یک کاربر مسخره شده ایجاد کنید toMocked
:
let user = toMocked<User>({
name: "Alice",
age: 30,
address: {
city: "CityX",
},
});
console.log(user.name); // "Alice"
console.log(user.address.city); // "CityX"
console.log(user.address.country); // Throws Error: Property "country" does not exist on...
مزیت اضافه استفاده از toMocked
بازخورد فوری است که هنگام تغییر کد برنامه و شکستن تست ها ارائه می کند. این نشان می دهد که چگونه انتظارات تغییر کرده است و نگهداری و به روز رسانی مجموعه آزمایشی شما را به طور قابل توجهی آسان تر می کند. به خصوص زمانی که از چارچوب های آزمایشی مانند Vitest استفاده می کنید، toMocked
یکپارچه ادغام می شود و نوشتن تست ها را آسان می کند.
به یاد داشته باشید، در TypeScript، object
انواع غیر ابتدایی را نشان می دهد. بنابراین، با toMocked
، شما محدود به استفاده از اشیاء ساده نیستید. شما می توانید از آرایه ها و انواع پیچیده دیگر نیز استفاده کنید.
function toMocked<T extends object>(value: any): T;
زیر سطح، toMocked
از جاوا اسکریپت قدرتمند استفاده می کند Proxy
شیء برای تعریف رفتار سفارشی برای جستجوی اموال. بررسی می کند که آیا ویژگی مورد دسترسی در شی مورد نظر وجود دارد یا خیر. اگر این کار را نکرد، خطا می دهد. در صورت وجود، ملک بازیابی می شود. اگر ویژگی خود یک شی باشد، با فراخوانی بازگشتی در سطح دیگری از پروکسی پیچیده می شود toMocked
.
با انجام این کار، اطمینان حاصل میشود که دادههای آزمایشی شما تا حد امکان واقعی را تقلید میکند و زمانی که انتظارات تغییر میکند، تستهای شما به سرعت شکست میخورد. بنابراین، اگر به دنبال ابزاری هستید که بتواند فرآیند آزمایش شما را با ایجاد داده های ساختگی واقعی تر و قابل نگهداری ساده تر کند، @lifeiscontent/to-mocked یک رقیب شایسته است. آن را امتحان کنید و متوجه تفاوت آن در روند کار تست خود شوید.