Search code examples
javaunit-testingoption-type

Assert that Optional has certain value


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");
}

Solution

  • You can also use AssertJ for fluent assertions

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