۱ دانشجوی سون‌لرن
پاک شدن تمام جدول‌های دیتابیس ما
جامعه پی اچ پی ایجاد شده در ۲۸ بهمن ۱۴۰۰

سلام

دلیل این پاک کردن رو من متوجه نشدم ، که چرا ما باید تمام جداول دیتابیسمون رو Truncate کنیم ، وقتی برنامه ریلیز میشه ، اگر فقط یک بار این تست‌ها اجرا بشه ، تمام جدول‌ها توی دیتابیس پروژمون Truncate میشه. و خب دلیل این کارو درک نمیکنم که چرا باید چنین اتفاقی بیوفته.

روی پروژه خودم ، فقط جدول orm_testing رو Truncate میکنم.

ممنونم میشم پاسخ بدید.?

سلام دوست عزیز

در ابتدا ما باید دیتابیس محیط توسعمون از دیتابیس محیط محصولمون جدا باشه، و تست برای محیط توسعه است.

دلیل این کار هم اینه که در تست هامون نتایج صحیح‌تری داشته باشیم و به خطا نخوریم و بتونیم دیتاهای تست هارو در متدهای تست آنالیز کنیم!

به عنوان مثال در فریمورک‌های مطرح مانند لاراول نیز به ما trait برای اینکار میده که جداول دیتابیسمون با هربار اجرای تست ازبین میره و دویاره ایجاد میشه

مثال زیر از تست مربوط به لاراول

	class AuthenticationTest extends TestCase
	{
	    use RefreshDatabase; // in trait database maro fresh mikone
	    public function test_users_can_authenticate_using_the_login_screen()
	    {
	        $user = User::factory()->create();
	        $response = $this->post('/login', [
	            'email' => $user->email,
	            'password' => 'password',
	        ]);
	        $this->assertAuthenticated();
	        $response->assertRedirect(RouteServiceProvider::HOME);
	    }
	}
محمد گازری ۰۸ اسفند ۱۴۰۰، ۰۸:۳۶