CodeShot
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 ساده، که سرعت کل مجموعهٔ تست را پایین می‌آورد.