كيف تفعل الاستثناء مع التعامل مع Nunit و Moq؟
سؤال
أحاول استخدام Nunits طريقة جديدة للتعامل مع الاستثناء ، لكنني أجد صعوبة في العثور على معلومات حولها وكيفية استخدامها أيضًا مع MOQ.
لدي الآن Moq الذي يلقي استثناءً على طريقة سهلة ، لكنني لا أعرف كيفية استخدام Nunit للقبض عليه والنظر إليه.
المحلول
هناك بعض الطرق المختلفة للقيام بذلك ؛ أنا أستخدم Assert.throws.
var exception = Assert.Throws<YourTypeOfException>(()=> Action goes here);
على سبيل المثال
var exception = Assert
.Throws<ArgumentNullException>(()=> new ChimpPuncher(null));
يمكنك بعد ذلك الاستعلام عن كائن الاستثناء أكثر إذا كنت تريد ، على سبيل المثال
Assert.That(exception.Message, Text.Contains("paramname");
نصائح أخرى
أفضل طريقة لذكرها هي: [ExpectedException(typeof(ApplicationException))]
فوق طريقة الاختبار.
لماذا لا يمكنك إرفاق استدعاء الأسلوب السخرية في كتلة المحاولة/التقاط والاستمتاع بالاستثناء المحدد الذي يتم إلقاؤه؟
لا تنتمي إلى StackOverflow