در SmsirChannel نبود متد routeNotificationFor برای $notificable موجب خطا خواهد شد, در نتیجه یک exception رو برگردوندم تا خطایابی رو راحت تر کنه و قابلیت تست پذیری رو اضافه کنه.
فایل های زیر برای mock کردن کلاس ها اضافه شده تا از ارسال درخواست واقعی به smsir جلوگیری بشه.
tests/Contracts/MockContract.php
tests/Mocks/BaseMock.php
tests/Mocks/SendMock.php
tests/Mocks/SmsirMock.php
همچنین 3 تست در فایل tests/NotificationTest.php اضافه شده است و smsirChannel رو تست میکند:
testNotificationIsFired
مطمئن میشیم smsirChannel درخواست کاربر را ارسال کرده و response دریافت شده است
testNotificationCannotFiredWithEmptyResponse
مطمئن میشم smsirChannel بدلیل شرط SmsirChannel.php نتیجه را null برگشت داده است.
در
SmsirChannel
نبود متدrouteNotificationFor
برای$notificable
موجب خطا خواهد شد, در نتیجه یکexception
رو برگردوندم تا خطایابی رو راحت تر کنه و قابلیت تست پذیری رو اضافه کنه.فایل های زیر برای mock کردن کلاس ها اضافه شده تا از ارسال درخواست واقعی به smsir جلوگیری بشه.
همچنین 3 تست در فایل
tests/NotificationTest.php
اضافه شده است و smsirChannel رو تست میکند:مطمئن میشیم smsirChannel درخواست کاربر را ارسال کرده و response دریافت شده است
testNotificationCannotFiredWithEmptyResponse
مطمئن میشم smsirChannel بدلیل شرط SmsirChannel.php نتیجه را null برگشت داده است.
testNotificationCannotBeFireWithoutRouteNotification
مطمئن میشیم
smsirChannel
یکRuntimeException
را بخاطر نبودن متدrouteNotificationRoute
برای مدل برمیگردونهاگر تست ها را ران کنید باید تمامی تست ها با موفقیت اجرا شود