Skip to content

How to write unit test for “InterruptedException”

In attempts of 100% code coverage, I came across a situation where I need to unit test block of code that catches an InterruptedException. How does one correctly unit test this? (JUnit 4 syntax please)

private final LinkedBlockingQueue<ExampleMessage> m_Queue;  

public void addMessage(ExampleMessage hm) {  
    if( hm!=null){
        try {
        } catch (InterruptedException e) {


Right before invoking addMessage(), call Thread.currentThread().interrupt(). This will set the “interrupt” status flag on the thread.

If the interrupted status is set when the call to put() is made on a LinkedBlockingQueue, an InterruptedException will be raised, even if no waiting is required for the put (the lock is un-contended).

By the way, some efforts to reach 100% coverage are counter-productive and can actually degrade the quality of code.