Open zhengjiaao opened 1 month ago
问题重点:当运行单个UserServiceTest中的某个方法的单元测试示例时,例如,先运行获取testGetUserById()(会写入redis缓存中),再运行testUpdateUser()(无法更新redis缓存),则运行失败,无法更新redis中缓存数据
注解里面只有Cached会创建缓存实例,其它的CacheUpdate/CacheInvalidate只是根据name去找,你发的这个错误是没有找到。
我不确定你这里的原因是什么,你可以看看别的地方是否还有name = "userCache-"的定义。
@CacheUpdate(name = "userCache-", key = "#user.userId", value = "#user") void updateUser(User user);
觉得,是不是根据name查找的逻辑是内存数据,而不是远程redis中数据导致的?
情况是,分别运行testGetUserById()、testUpdateUser()两个方法,出现的问题,若是两个方法放一起执行则没有问题
和redis没有关系,它是没有找到cache的配置定义
这个和spring的初始化顺序有关,你有兴趣可以查查看
yaml已配置 local、remote,代码示例:
单元测试:
现象: 1、当运行整个
UserServiceTest
单元测试示例时,可以通过测试,能够正常写入redis缓存、修改redis缓存、删除redis缓存 2、当运行单个UserServiceTest
中的某个方法的单元测试示例时,例如,先运行获取testGetUserById()
(会写入redis缓存中),再运行testUpdateUser()
(无法更新redis缓存),则运行失败,无法更新redis中缓存数据更新or删除时报错信息: