【发布时间】:2021-03-16 19:44:27
【问题描述】:
我有一个看起来像这样的通用函数
def getFromCacheOrCallService[T: ClassTag](cacheKey: String, duration: Duration = cacheDefaultDuration)(
callServiceToFetchValue: => Try[T]
): Try[T]
我试图弄清楚如何以始终调用callServiceToFetchValue 并使用它的方式模拟此函数。到目前为止我有这个
doAnswer(invocation => {
invocation.getArgumentAt(1, classOf[() => Try[marketplace]])()
}).when(marketplaceCache).cacheable(any(), any())(any())(any())
如果我理解我所做的正确应该调用传递的函数,但是每当我尝试运行时都会收到此错误
Invalid use of argument matchers!
4 matchers expected, 3 recorded:
为什么说它需要 4 个匹配器?我有 4 个匹配器,我不明白问题出在哪里。
【问题讨论】:
标签: scala testing mocking mockito