سلام دوستان؛ برای تست نویسی یه مشکل دارم، ممنون میشم راهنمایی کنید
از multiauth استفاده میکنم، و میخوام برای ادمین ها تست بنویسم که وقتی لاگین هستن صفحه لاگین رو نبینن و ریدایرکت بشن به صفحه داشبورد، الان به این شکل نوشتم و اوکیه
public function test_admin_cannot_view_login_page_when_authenticated()
{
$admin = factory(Admin::class)->make();
$response = $this->actingAs($admin,'admin')->get(route('admin.loginForm'));
$response->assertRedirect(route('admin.dashboard'));
$this->assertTrue(Auth::guard('admin')->check());
}
ولی با یوزر هم تست میکنم اوکی میده، به این شکل:
public function test_admin_cannot_view_login_page_when_authenticated()
{
$admin = factory(User::class)->make();
$response = $this->actingAs($admin,'admin')->get(route('admin.loginForm'));
$response->assertRedirect(route('admin.dashboard'));
$this->assertTrue(Auth::guard('admin')->check());
}@ali.bayat
بله بله، :) اینقدر که مخمو درگیر کرده بود این تست نویسی از این زاویه نگاش نکرده بودم 😅😅😅
ممنون ، لطف کردین
اقای بیات یه لطفی میکنید که توضیحی بدین واسه تست نویسی باید کجاها رو واسش تست نوشت، ایا همه تک به تک قسمت های سیستم رو باید واسش تست نوشت؟ یا فقط قسمت های مهم رو،
چون خیلی موقت گیر هست این کار،برای مثلا دیروز خیلی وقتم رو گذاشتم واسه تست نویسی قسمت لاگین ادمین ها (ناگفته نماند که بیشتر یادگیری بود، چون اولین بارم بود)
چون هم دوست دارم هر قسمتی رو مینویسم تستش رو هم بنویسم ولی خوب خیلی زمان بر هست
@coaradsupp
سلام.
ببینید تست نویسی برای کل پروژه نیست.
اساس تست اینه که شما قسمت های جدیدی که میخواهید به سیستم اضافه کنید، قبلش تست کنید تا از کارکرد درست اونها اطمینان حاصل کنید بعد از اونها استفاده کنید.
شاید پاسخ شما همینجا باشد
@coaradsupp
طبق روش TDD ، شما از زمان شروع پروژه قبل از این که کد رو در اصل برنامه قرار بدید، ابتدا برای اون تست می نویسید.
می تونید از همون اول تست نویسی کنید و همچنین می تونید برای بخش های مهم و پیچیده تست بنویسید این بستگی به خود برنامه نویس داره که چه موقع تست بنویسه.
@mohsenbostan
ممنون اقای بستان، پس نیاز به نوشتن تست واسه همه قسمت ها نیس، قسمت های مهم تست نویسی بشه زمان زیادی هم نمیگیره
ببینید شما اکثرا با Feauture Test ها سر و کار دارید
مثلا فلان کاربر میتونه پست جدید ارسال کنه
یا اینکه فقط خود این کاربر بتونه پست هاش رو حذف کنه...
و یونیت تست رو داریم که کمی سطح پایین تره:
مثلا اگر این کلاس رو Instantiate کنیم و این داده هارو پاس بدیم.. این خروجی رو خواهیم داشت
در ابتدا ممکنه کمی زمان بر باشه اما اگر عادت کنید .. این سبک از توسعه عالی هست
@coaradsupp
با سلام . نظرات آقای بیات واقعا حرفه ای و کامل هست . فقط به عنوان پیشنهاد خواستم بگم اگر زمانی آموزشی نیاز داشتین دوره تست نویسی لاراکست فوق العادس . من خودم دو هفتس باهاش دارم پیش میرم واقعا بی نظیره و دید وسیعی پیدا میکنید به تست نویسی .
این لینکش هست
@SobhanDadkhah
لطف بسیار کردین اقای دادخواه، ممنونم،
این دوره رو باید خرید؟ یا موجود هست که بشه استفاده کرد؟
اتفاقا این دوره رو ی کانال توی تلگرام گذاشته بود با این عنوان
Let's Build A Forum with Laravel and TDD
ولی دانلود نکردم
@coaradsupp خواهش میکنم .
بله توی سایت لاراکست فروشی هست ولی این سایت برای فروش گذاشتن با قیمت های خوب . اونی که شما فرمودین دوره forum Tdd هست که رایگانه ولی اونی که من گفتم عنوانش این هست : lets build an App with laravel TDD .
خودم خیلی روی قانون کپی رایت حساسم ولی خرید اشتراک دلاری خیلی خیلی دردسر و دوندگی داشت مجبور شدم از سایت ایرانی خرید بکنم . تا امروز هیچی از تست نویسی نمیدونستم ولی هرچی بیشتر پیش برین میبینید که چقدر بدرد میخوره 😊
@SobhanDadkhah
در این که آقای جفری وی جز بهترین مدرس ها هستند.. هیچ شکی نیست
@coaradsupp
خواهش میکنم، پیروز باشید
یکی از دوستان اموزشش رو داشت و توی کانال تلگرامش قرار داده، گفتم شاید دوستان خواستن استفاده کنن
https://t.me/LaracastsCourse