Creating Concise Exception Tests

When Java 5 annotations were introduced, JUnit was quick to use them. Overall this has been a benefit, but one use in particular, the convenience of exception tests, leads to terse rather than concise code. Let’s understand the issues and then resolve them using—good guess—lambda expressions. We will see here that lambda expressions are not just another language feature; they alter the way we think and design applications.

Suppose we’re driving the design of a class, RodCutter, through unit tests and we expect a method maxProfit to throw an exception if the argument is zero. Let’s look at a few ways we can write the exception tests for it.

Exception Test with try and catch

Here’s the test for the maxProfit method ...

Get Functional Programming in Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.