Testing Expected Exceptions in JUnit

We can test expected exceptions using JUnit 5 assertThrows assertion. This JUnit assertion method returns the thrown exception, so we can use it to assert exception message too.

JUnit Assert Exception

Here is a simple example showing how to assert exception in JUnit 5.

String str = null;
assertThrows(NullPointerException.class, () -> str.length());

JUnit 5 Assert Exception Message

Let’s say we have a class defined as:

class Foo {
    void foo() throws Exception {
        throw new Exception("Exception Message");
    }
}

Let’s see how we can test exception as well as its message.

Foo foo = new Foo();
Exception exception = assertThrows(Exception.class, () -> foo.foo());
assertEquals("Exception Message", exception.getMessage());

JUnit 4 Expected Exception

We can use JUnit 4 @Test annotation expected attribute to define the expected exception thrown by the test method.

@Test(expected = Exception.class)
public void test() throws Exception {
    Foo foo = new Foo();
    foo.foo();
}

JUnit 4 Assert Exception Message

If we want to test exception message, then we will have to use ExpectedException rule. Below is a complete example showing how to test exception as well as exception message.

package com.journaldev.junit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class JUnit4TestException {

    @Rule
    public ExpectedException thrown = ExpectedException.none();

    @Test
    public void test1() throws Exception {
        Foo foo = new Foo();
        thrown.expect(Exception.class);
        thrown.expectMessage("Exception Message");
        foo.foo();
    }
}

That’s all for a quick roundup on testing expected exceptions in JUnit 5 and JUnit 4.

Create a Free Account

Register now and get access to our Cloud Services.

Posts you might be interested in:

centron Managed Cloud Hosting in Deutschland

How To Set Up a New TypeScript Project

JavaScript
How To Set Up a New TypeScript Project Content1 Introduction2 Table of Contents3 Prerequisites4 Step 1 — Starting the TypeScript Project5 Step 2 — Compiling the TypeScript Project6 Step 3…
centron Managed Cloud Hosting in Deutschland

How To Add JavaScript to HTML

JavaScript
How To Add JavaScript to HTML Content1 Introduction2 Add JavaScript to HTML3 Working with a Separate JavaScript File4 Conclusion to Add JavaScript to HTML Introduction JavaScript, also abbreviated to JS,…