Итак, у меня есть следующий бит кода
class MetricsLogger {
def measure[T](name:String)(operation: => T): T = {
val startTime = System.currentTimeMillis
val result = try {
operation
} finally {
logMetric(Metric(name, System.currentTimeMillis - startTime, StandardUnit.Milliseconds))
}
result
}
}
Где log Metric - это какой-то побочный эффект (например, загрузка метрики в cloudwatch).
Теперь я делаю это как
def measuredOp = measure("metricName") { someOperation }
Здесь некоторые операции выполняют некоторые сетевые вызовы.
Теперь мне нужно заглушить мерную оп.
Итак, моя заглушка выглядит следующим образом: -
val loggingMetrics = mock[MetricsLogger] // mock is from MockitoSugar trait
, а моя заглушка похожа на
Mockito.when(loggingMetrics.measure(Matchers.anyString())(Matchers.anyObject())).thenReturn(???)
Так что, очевидно, моя заглушка неверна, но я не могу понять, какчтобы заглушить это правильно.