Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (3.9k points)

I have written a few JUnit tests with @Test annotation. If my test method throws a checked exception and if I want to assert the message along with the exception, is there a way to do so with JUnit @Test annotation? AFAIK, JUnit 4.7 doesn't provide this feature but does any future versions provide it? I know in .NET you can assert the message and the exception class. Looking for similar feature in the Java world.

This is what I want:

@Test (expected = RuntimeException.class, message = "Employee ID is null")

public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

1 Answer

0 votes
by (46k points)

You could tthe try @Rule annotation with ExpectedException, see this:

@Rule

public ExpectedException expectedEx = ExpectedException.none();

@Test

public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() throws Exception {

expectedEx.expect(RuntimeException.class);

expectedEx.expectMessage("Employee ID is null");

// do something that should throw the exception...

}

Remark that the case in this ExpectedException docs is (currently) obverse - there's none public constructor, so you have to apply ExpectedException.none().

Related questions

0 votes
2 answers
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...