ইউনিট টেস্টিং-এ একটি এক্সসেপশন ভেরিফাই করার দুটি উপায় আছে।
Assert.ThrowsExceptionব্যবহার করেExpectedExceptionঅ্যাট্রিবিউট ব্যবহার করে
উদাহরণ
একটি `StringAppend` মেথড বিবেচনা করুন যা এক্সসেপশন থ্রো করে এবং যেটি টেস্ট করতে হবে।
using System;
namespace DemoApplication
{
public class Program
{
static void Main(string[] args) { }
public string StringAppend(string firstName, string lastName)
{
throw new Exception("Test Exception");
}
}
}
Assert.ThrowsException ব্যবহার করে
using System;
using DemoApplication;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DemoUnitTest
{
[TestClass]
public class DemoUnitTest
{
[TestMethod]
public void DemoMethod()
{
Program program = new Program();
var ex = Assert.ThrowsException(() => program.StringAppend("Michael", "Jackson"));
Assert.AreSame(ex.Message, "Test Exception");
}
}
}
এই উদাহরণে, আমরা `StringAppend` মেথডটি `Assert.ThrowsException` ব্যবহার করে কল করছি এবং এক্সসেপশন টাইপ এবং মেসেজ ভ্যালিডেট করছি। তাই টেস্ট কেস পাস করবে।
ExpectedException Attribute ব্যবহার করে
using System;
using DemoApplication;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DemoUnitTest
{
[TestClass]
public class DemoUnitTest
{
[TestMethod]
[ExpectedException(typeof(Exception), "Test Exception")]
public void DemoMethod()
{
Program program = new Program();
program.StringAppend("Michael", "Jackson");
}
}
}
এই উদাহরণে, আমরা `ExpectedException` অ্যাট্রিবিউট ব্যবহার করছি এবং এক্সপেক্টেড এক্সসেপশনের টাইপ স্পেসিফাই করছি। যেহেতু `StringAppend` মেথড `[ExpectedException(typeof(Exception), "Test Exception")]`-এ উল্লেখ করা একই টাইপের এক্সসেপশন থ্রো করে, টেস্ট কেস পাস করবে।