Assert.Throws
ফেলে দেওয়া ব্যতিক্রমটি ফিরিয়ে দেয় যা আপনাকে ব্যতিক্রম দৃ as় করতে দেয়।
var ex = Assert.Throws<Exception>(() => user.MakeUserActive());
Assert.That(ex.Message, Is.EqualTo("Actual exception message"));
সুতরাং যদি কোনও ব্যতিক্রম নিক্ষেপ করা হয় না, বা ভুল ধরণের একটি ব্যতিক্রম নিক্ষেপ করা হয় তবে প্রথম Assert.Throws
দৃser়তা ব্যর্থ হবে। তবে যদি সঠিক ধরণের একটি ব্যতিক্রম ছুঁড়ে দেওয়া হয় তবে আপনি এখন আসল ব্যতিক্রমটি দৃ saved়ভাবে বলতে পারবেন যে আপনি ভেরিয়েবলে সংরক্ষণ করেছেন।
এই প্যাটার্নটি ব্যবহার করে আপনি ব্যতিক্রম বার্তাগুলি বাদ দিয়ে অন্য কিছুতে দৃsert়তা রাখতে পারেন, উদাহরণস্বরূপ ArgumentException
এবং ডেরিভেটিভসের ক্ষেত্রে , আপনি জোর দিয়ে বলতে পারেন যে প্যারামিটারের নামটি সঠিক:
var ex = Assert.Throws<ArgumentNullException>(() => foo.Bar(null));
Assert.That(ex.ParamName, Is.EqualTo("bar"));
আপনি এই দৃser়তাগুলি করার জন্য সাবলীল এপিআইও ব্যবহার করতে পারেন:
Assert.That(() => foo.Bar(null),
Throws.Exception
.TypeOf<ArgumentNullException>()
.With.Property("ParamName")
.EqualTo("bar"));
বা বিকল্পভাবে
Assert.That(
Assert.Throws<ArgumentNullException>(() =>
foo.Bar(null)
.ParamName,
Is.EqualTo("bar"));
ব্যতিক্রম বার্তাগুলির উপর জোর দেওয়ার সময় একটি টিপটি হ'ল SetCultureAttribute
নিক্ষেপিত বার্তাটি প্রত্যাশিত সংস্কৃতিটি ব্যবহার করছে কিনা তা নিশ্চিত করে পরীক্ষা পদ্ধতিটি সাজাই। আপনি যদি স্থানীয়করণের অনুমতি দেওয়ার জন্য আপনার ব্যতিক্রম বার্তাগুলিকে সংস্থান হিসাবে সংরক্ষণ করেন তবে এটি খেলায় আসে।