0

我正在编写 Micronaut 测试来测试我的缓存功能。有一个 Service Singleton 类,它具有常规的 @Cacheable、@CacheInvalidate 注释方法。服务类中的方法调用 Repository 类,该类与数据库联系以获取所需的数据。

为了测试缓存,我使用@Inject 和@Spy 注释注入了服务,并为存储库注入了一个@MockBean。我添加了一个存根以使用 Mockito.when(repo.fetch("X")).thenReturn(DB Object) 从存储库 Mock 返回一些虚拟数据。现在,当我打电话给服务时。我可以使用 Mock.verify 检查我的存储库是否第一次被调用。但我也想验证我的服务中的方法是否被调用。我尝试使用 Mockito.verify(Service).method("X") 但它无法说明该对象不是 Mock。

那么,如何验证我的方法是否被调用?接下来,我还想确认当我传入相同的参数时,我的方法没有被调用(因为它会在第一次调用后被缓存)。

4

0 回答 0