Avatar ·

كيف تتحقق في MSTest من أن الدالة ترمي استثناءً؟

مرحباً بالجميع! أنا مبتدئ في اختبار الوحدة بلغة C# وأستخدم MSTest. لدي دالة يجب أن ترمي استثناءً تحت ظروف معينة. على سبيل المثال، هذه دالة قسمة بسيطة: ```csharp public int Divide(int a, int b) { if (b == 0) throw new DivideByZeroException("لا يمكن القسمة على صفر!"); return a / b; } ``` أريد كتابة اختبار يتحقق من أنه عند تمرير b = 0 يتم بالفعل رمي DivideByZeroException. لكنني لا أفهم كيف أفعل ذلك بشكل صحيح باستخدام Assert. حاولت تغليف الاستدعاء في try-catch ووضع Assert.Fail، لكن هذا يبدو قبيحاً جداً. رأيت أنه في أطر عمل أخرى (مثل NUnit) هناك سمة خاصة [ExpectedException]، لكن في MSTest يبدو أنها قديمة أو لا تعمل بنفس الطريقة. من فضلكم، أخبروني كيف أكتب مثل هذا الاختبار بشكل صحيح وجميل في MSTest؟ هل هناك طريقة خاصة Assert لذلك؟ سأكون ممتناً لمثال على الكود.