Assert that Optional has certain value

Matthias Braun picture Matthias Braun · Aug 15, 2016 · Viewed 49.4k times · Source

I have a Java method that returns an Optional. I'd like to write an easy-to-read unit test for it that asserts that

  1. the returned Optional has a value (i.e., the Optional is not empty) and that

  2. the returned value is equal to an expected value.

Let's say my tested method is

Optional<String> testedMethod(){
  return Optional.of("actual value");
}

Answer

Spotted picture Spotted · Aug 15, 2016

You can also use AssertJ for fluent assertions

@Test
public void testThatOptionalIsNotEmpty() {
    assertThat(testedMethod()).isNotEmpty();
}

@Test
public void testThatOptionalHasValue() {
    assertThat(testedMethod()).hasValue("hello");
}