(ম্যাকটলের উত্তরের বিপরীতে) দীর্ঘ উত্তর: না ... বেশিরভাগ সময়
যখন আপনি বলছেন যে আপনি কোনও পরীক্ষার একটি নির্দিষ্ট ব্যতিক্রম বাড়ানোর আশা করছেন, তখন আপনি জানতে পারবেন যে পরীক্ষার কোনও রেখা যখন সেই নির্দিষ্ট ব্যতিক্রম উত্থাপন করে।
এটি পরীক্ষার অধীনে পদ্ধতিটি ব্যতিক্রম ছুঁড়ে ফেলেছে তা জেনে যাওয়ার মতো একই জিনিস নয়।
যদি আপনার পরীক্ষায় কোনও অবজেক্ট বা প্রসঙ্গ স্থাপন করা (পরীক্ষার মধ্যে, আপনার কাঠামোর সংস্করণটির মধ্যে না SetUp
) অন্তর্ভুক্ত থাকে তবে সম্ভবত আপনি কোনও সাহায্যকারীর সাহায্যে চেষ্টা করে / ধরাতে পরীক্ষা করতে চান এমন একক লাইনকে জড়িয়ে রাখা ভাল।
এই ক্ষেত্রে,
public static class AssertHelper {
public delegate void Thunk();
public static void DoesNotThrow<T>(Thunk thunk, string message = "")
where T: Exception {
try {
thunk.Invoke();
} catch(T) {
Assert.Fail(message);
}
}
}
এবং তারপর
[TestMethod]
public void assertHelperInAction() {
// Random setup stuff here that's too annoying to put in my SetUp
// method.
AssertHelper.DoesNotThrow<IllegalArgumentException>(() =>
{/* My random method under test */})
}
যদি এই পরীক্ষাটি ব্যর্থ হয়, আমি জানি যে পরীক্ষার অধীনে আমার পদ্ধতিটি ব্যতিক্রম ছুঁড়ে দিয়েছে, এবং এলোমেলো সেটআপ স্টাফের কিছু নয়।
(আপনার চেষ্টা করা উচিত এবং এলোমেলো সেটআপ স্টাফগুলি এড়ানো উচিত Sometimes কখনও কখনও পরীক্ষায় কিছু সেটআপ কোড রাখা সহজ)