CodeShot
Midسختی 2 از ۵· در 25٪ مصاحبه‌های این حوزه پرسیده شده

تفاوت [Fact] و [Theory] در xUnit چیست؟

نشان کردن

پاسخ کوتاه

[Fact] یک تست ساده با ورودی ثابت است؛ [Theory] با [InlineData] اجازه می‌دهد یک تست با چند مجموعه دادهٔ مختلف چندین بار اجرا شود.

پاسخ کامل

استفاده از Theory برای تست چند حالت مرزی یک تابع، بسیار تمیزتر از نوشتن چند [Fact] تکراری با فقط تغییر مقدار ورودی است.

مثال کد

csharp\n[Theory]\n[InlineData(2, 3, 5)]\npublic void Add(int a, int b, int expected) => Assert.Equal(expected, Calculator.Add(a, b));\n