كيف تفعل الاستثناء مع التعامل مع Nunit و Moq؟

StackOverflow https://stackoverflow.com/questions/1386421

  •  21-09-2019
  •  | 
  •  

سؤال

أحاول استخدام 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))] فوق طريقة الاختبار.

لماذا لا يمكنك إرفاق استدعاء الأسلوب السخرية في كتلة المحاولة/التقاط والاستمتاع بالاستثناء المحدد الذي يتم إلقاؤه؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top