💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ محسن محمدخانی
درست بودن نوشتن تست یا نه
جامعه مهندسی نرم افزار ایجاد شده در ۰۹ خرداد ۱۴۰۱

سلام 

من یه کلاس دارم که ثبت نام کاربر با email و password انجام میده 

https://github.com/MohsenMohammadkhani/shop-practice-api

کلاس زیر دو متد private داره  

https://github.com/MohsenMohammadkhani/shop-practice-api/blob/master/app/Services/User/Register/UserRegisterWithCredential.php

متد showUserExistException یه Exception نمایش میده

و متد checkUserExist بررسی میکنه که اگر کاربر در user collection دیتابیس MongoDB موجود است یا نه 

آیا برای این دو تا متد باید unit test نوشت؟

اگر قرار باشه براشون تست بنویسیم چون  private هستن میشه طبق این لینک زیر از ReflectionClass استفاده کرد 

 https://dev.to/daniel_werner/how-to-use-reflection-to-test-private-and-protected-methods-3339

آیا اینکار کار , کار درستی هستش؟

سلام.

داخل گروه سؤالتونو بپرسید تا استاد راهنماییتون کنن.

محسن موحد ۱۰ خرداد ۱۴۰۱، ۱۹:۴۳

جواب شما خیلی وقت پیش در این وب سایت قرار داده شده.

http://shoulditestprivatemethods.com/

کیوان علی محمدی ۱۱ خرداد ۱۴۰۱، ۱۳:۵۲

 آیا وجود متد checkUserExist در کلاس UserRegisterWithCredential نقض SRP نیست؟

 بهتر نیست براش یک کلاس جداگانه ساخت؟ و متد checkUserExist در اون کلاس در حالت public تعریف بشه تا بشه تستش کرد

 از طرفی ما نباید متدهای private تست کنیم از طرفی طبق قانون OCP نباید logic کلاس هم در متد private باشه 

 خوب پس private چه وظایفی باید انجام بده؟

 

  

محسن محمدخانی ۱۱ خرداد ۱۴۰۱، ۱۴:۵۸