Mock object در تست واحد، کلاسهایی هستند که عملکرد یک کلاس واقعی را شبیهسازی میکنند. درست همانگونه که یک خودروساز از ماکت انسان به عنوان جایگزینی در آزمون تصادف خودرو بهرهبرداری میکند.
- موارد استفاده از Mock object میتواند هنگامی باشد که کلاس اصلی یکی از وضعیتهای زیر را داشته باشد:
- نتایج غیرقطعی تولید کند( مثلا دمای فعلی یا زمان فعلی )
- وضعیتهای دارد که تولید آن مشکل باشد( مثلا خطای شبکه )
- سرعتش کم باشد( مثلا یک پایگاه داده که نیازمند مقداردهی اولیه باشد )
- هنوز ایجاد نشده یا عملکرد آن متغیر است
- برای کارکرد به اطلاعات آزمایشی نیاز داشته باشد
برای مثال ممکن است بخواهید زنگ یک ساعت را آزمایش کنید. برای آزمون با اطلاعات واقعی، لازم است مدتی انتظار بکشید تا ساعت واقعی به زمان مورد نظر برسد. ولی با استفاده از Mock object میتوان مقدارهای دلخواه را به صورت غیرواقعی تولید و در اختیار آزمون واحد قرار داد.