Я пытаюсь заглушить метод с тремя параметрами, чтобы получить разные ответы относительно одного из этих параметров:
val mocked = mock[MyService]
mocked.someInitialization returns mock[State]
mocked.complexMethod(*, *, *) answers { (_:State, discriminant:Discriminant, _:Delegate[MyService]) =>
discriminant match {
case _:FirstKind => Right(Option.empty[String])
case SecondKind(value:String) => Right(Some(value))
case _ => ???
}
}
Однако мой тест не пройден с сообщением выше:
SmartNull returned by this unstubbed method call on a mock:
myService.complexMethod(
Mock for State, hashCode: 1730688778,
FirstKind("UnusedValue"),
my.system.FixturesAndMock$FakeDelegate@2b5f8e61
); (of class scala.util.Either$MockitoMock$854506859)
(Я не понимаю предложение " класса scala .util.Either $ MockitoMock $ 854506859 ")
Обратите внимание, что:
- заглушка с
mocked.complexMethod(*, *, *) returns Left(Nil)
имеют ту же проблему. - использование
any[State], any[Discriminant], any[Delegate[MyService]]
вместо *, *, *
ничего не меняет.
Я использую org.mockito.scalatest.IdiomaticMockito
на Scala 2.12.8 на GraalVM. Что я делаю неправильно; Как я могу заглушить метод для возврата вычисленных ответов?
Спасибо