如何在Play2 Scala Framework v2.6.3 scala v2.12中模拟DefaultSyncCacheApi?

时间:2017-10-30 08:47:12

标签: scala unit-testing playframework mockito

我正在为一个以Play2类DefaultSyncCacheApi作为依赖关系的类编写单元测试。 我正在我正在测试的课程中调用方法getOrElseUpdate[A: ClassTag](key: String, expiration: Duration)(orElse: => A): A

当然,我不想测试缓存类,但我只想模拟它,以便我可以测试其他功能。

我尝试使用Mockito:

mockCache = mock[DefaultSyncCacheApi]    
when(mockCache.getOrElseUpdate(any(),any())(any())(any()).thenReturn(Future[String])

我首先从任何()开始,然后我也尝试过:

  when(mockCache.getOrElseUpdate[List[Item]](any(),any())
  (any[List[Item]])
  (any[ClassTag[List[Item]]])
  ).thenReturn(List(new Item))

我总是得到同样的错误:

InvalidUseOfMatchersException: 
Invalid use of argument matchers!
4 matchers expected, 3 recorded:

因此,最后我无法应用方法定义中的所有4个匹配器。

0 个答案:

没有答案