-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Description
We are not able to mock methods that use optional default arguments. This problem occurs on Java 21 and using mockito-scala
1.17.37
:
test("bla") {
trait Mockable {
def doTheThing(a: Option[Int] = None): UIO[Int]
}
val mockable = mock[Mockable]
when(mockable.doTheThing()).thenReturn(ZIO.succeed(43))
for {
_ <- mockable.doTheThing()
} yield assertCompletes
}
The error it produces is the following:
- TestFacility - bla
Exception in thread "zio-fiber-252" org.mockito.exceptions.verification.SmartNullPointerException:
You have a NullPointerException here:
-> at org.scalactic.DefaultPrettifier.prettifyCollection(Prettifier.scala:188)
because this method call was *not* stubbed correctly:
-> at scala.Option.orElse(Option.scala:477)
mockable$1.doTheThing$default$1();
at org.scalactic.DefaultPrettifier.prettifyCollection(Prettifier.scala:188)
at org.scalactic.DefaultPrettifier.prettify(Prettifier.scala:218)
at org.scalactic.DefaultPrettifier.apply(Prettifier.scala:223)
at TestFacilitySpec$.$anonfun$spec$37(TestFacilitySpec.scala:125)
at TestFacilitySpec.spec(TestFacilitySpec.scala:116)
It does seem to work when updating mockito-core
to 5.14.2
Jasper-M
Metadata
Metadata
Assignees
Labels
No labels