Seniorسختی 3 از ۵· در 15٪ مصاحبههای این حوزه پرسیده شده
چرا Testcontainers نسبت به SQLite In-Memory برای Integration Test ترجیح داده میشود؟
☆نشان کردنپاسخ کوتاه
چون یک دیتابیس واقعی (مثل SQL Server) را در Docker اجرا میکند و رفتار واقعی آن دیتابیس را دقیقتر شبیهسازی میکند.
پاسخ کامل
SQLite In-Memory رفتار برخی قابلیتهای خاص SQL Server (مثل بعضی توابع یا محدودیتها) را ندارد؛ Testcontainers با اجرای همان دیتابیس هدف در یک Container موقت، این شکاف را از بین میبرد و در پایان Container را خودکار حذف میکند.
مثال کد
csharp\nvar container = new MsSqlBuilder().Build();\nawait container.StartAsync();\n
اشتباه رایج
استفاده از Testcontainers برای هر Unit Test ساده، که سرعت کل مجموعهٔ تست را پایین میآورد.
