I am using Mockito version 5.2.0.
With mockito-inline
, the following code throws a ClassCastException
:
public static void main(String[] args) {
A a = mock(A.class, RETURNS_DEEP_STUBS);
String str = a.b().map(B::string).orElseThrow();
}
interface A {
Optional<B> b();
}
interface B {
String string();
}
Is this a bug?
The reason it throws a ClassCastException
is that the expression a.b().map(B::string).orElseThrow()
returns a B
, not a String
.
To me, it would be more logical for a.b().map(B::string).orElseThrow()
to return null
.