У меня есть следующий класс:
class Elem[T](t: T){
def doSome(f: T => Unit):Unit = f(t)
}
Итак, я хочу проверить вызов функции для данного экземпляра Elem
(я делаю с mockito).При выполнении теста
val f = mock(classOf[Int => Unit])
new Elem(1).doSome(f)
verify(f).apply(1)
я получил следующее исключение:
Wanted but not invoked:
function1.apply$mcVI$sp(1);
However, there was exactly 1 interaction with this mock:
function1.apply(1);
Это разумно, поскольку Function1
специализируется на Int
.Так что выполнение теста как
val f = mock(classOf[AnyRef => Unit])
new Elem(1.asInstanceOf[AnyRef]).doSome(f)
verify(f).apply(1.asInstanceOf[AnyRef])
работает нормально.
Есть ли способ избежать этого уродливого приведения к AnyRef
?Может быть, есть другой инструмент, более подходящий для этого случая, чем mockito?