আপডেট: ব্যতিক্রম পরীক্ষার জন্য JUnit5 এর একটি উন্নতি হয়েছে:assertThrows
।
নিম্নলিখিত উদাহরণটি থেকে: জুনিট 5 ব্যবহারকারী গাইড
@Test
void exceptionTesting() {
Throwable exception = assertThrows(IllegalArgumentException.class, () ->
{
throw new IllegalArgumentException("a message");
});
assertEquals("a message", exception.getMessage());
}
JUnit 4 ব্যবহার করে আসল উত্তর।
পরীক্ষার বিভিন্ন উপায় রয়েছে যে একটি ব্যতিক্রম নিক্ষেপ করা হয়। আমি আমার পোস্টে নীচের বিকল্পগুলি নিয়েও আলোচনা করেছি কীভাবে জুনিয়নের সাথে দুর্দান্ত ইউনিট পরীক্ষা লিখতে হয়
expected
প্যারামিটার সেট করুন @Test(expected = FileNotFoundException.class)
।
@Test(expected = FileNotFoundException.class)
public void testReadFile() {
myClass.readFile("test.txt");
}
ব্যবহার try
catch
public void testReadFile() {
try {
myClass.readFile("test.txt");
fail("Expected a FileNotFoundException to be thrown");
} catch (FileNotFoundException e) {
assertThat(e.getMessage(), is("The file test.txt does not exist!"));
}
}
ExpectedException
বিধি দিয়ে পরীক্ষা হচ্ছে ।
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void testReadFile() throws FileNotFoundException {
thrown.expect(FileNotFoundException.class);
thrown.expectMessage(startsWith("The file test.txt"));
myClass.readFile("test.txt");
}
আপনি ব্যতিক্রম টেস্টিংয়ের জন্য JUnit4 উইকিতে ব্যতিক্রম টেস্টিং সম্পর্কে আরও পড়তে পারেন এবং খারাপ rorobot - ব্যতিক্রম প্রত্যাশা JUnit বিধি ।
org.mockito.Mockito.verify
ব্যতিক্রম ছোঁড়ার আগে নির্দিষ্ট কিছু ঘটেছিল (যেমন কোনও লগার পরিষেবাটিকে সঠিক পরামিতি দিয়ে ডাকা হয়েছিল) তা নিশ্চিত করার জন্য আমি প্রায়শই বিভিন্ন পরামিতি সহ কল করতে চাই ।