- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的基类使用负责审计的java库。该库使用生成器模式从我的 Java 项目中检索对象以进行审核操作(通过自行创建键插入到多个表中。)该库使用 com.google.common.cache
管理缓存值。即字符串和值。 LoadingCache<String, Long>
示例我的项目如何使用库
auditOperation = LibraryAuditBuilder.builder()
//some param
.build()
LibraryAuditingService.process(auditOperation);
我的基础应用程序和库在 Oracle 数据库上运行,我的单元测试使用 HSQL 数据库。给出 @Before
中所有必需的脚本我想对我的代码的执行进行单元测试。
@Before
方法
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
//create db scrips and other declarations
}
到目前为止我已经尝试了两种方法
1) 创建LoadingCache
并将示例值放入其中,以便 UnitTest 可以在稍后的执行中使用它。
longLoadingCache.put("4028eeb0-1d2d-daba-011d-2e36e4b2110e",(long)203);
longLoadingCache.put("4028ee14-24b4-5221-0124-b47bbb1d1232",(long)102);
2) @Mock
LoadingCache
的对象以及稍后在测试中使用的值
when(longLoadingCache.get("4028eeb0-1d2d-daba-011d-2e36e4b2110e")).thenReturn((long)203);
when(longLoadingCache.get("4028ee14-24b4-5221-0124-b47bbb1d1232")).thenReturn((long)102);
上述两种方法的当前输出
- com.google.common.cache.CacheLoader$InvalidCacheLoadException: CacheLoader returned null for key 4028ee14-24b4-5221-0124-b47bbb1d1232.
所以我的问题是,如何传递/模拟 Cache 的值,以便 UnitTests 不必在 Library 类中查找值。
最佳答案
考虑创建您自己的外观 bean 来包装第 3 方库(例如 AuditProcessor)。当使用 @Autowire 或 @Inject 注入(inject)外观时,您可以轻松地在测试代码中模拟它,并检查您的包装外观(读取:库)是否已正确使用。如果您不信任该库,您可以在没有 HSQL 的隔离环境中对包装外观和所有极端情况进行单元测试。如果您想要更多控制,您可以引入一个接口(interface)(例如 IAuditProcessor)并创建一个虚拟实现,该实现将在使用 Spring 配置文件的测试中@Autowired。
总结一下:
关于java - 如何使用 Mockito 在单元测试中模拟 LocalCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55972811/
源码地址: GitHub 使用场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中。相对从数据库中读取来说,读缓存效率会有很大提升。 在集群环境下,常用的分
我使用的是 guava 库中的 CacheBuilder 和 LocalCache,但有一些性能问题 p99.9 getAllPresent 延迟大约 300-400 毫秒。p99 和 p99.9 之
下面是 web.config 中的 dataCacheClient 条目: 上述配置将在 MyRoleName 角色上使用共置缓存。除了共置缓存
我的基类使用负责审计的java库。该库使用生成器模式从我的 Java 项目中检索对象以进行审核操作(通过自行创建键插入到多个表中。)该库使用 com.google.common.cache管理缓存值。
使用 C# for WinRT 如何访问应用程序数据文件夹“LocalCache”? 来自页面http://msdn.microsoft.com/en-us/library/windows/apps/
当前使用 Windows Azure 缓存。 要启用本地缓存,我设置了以下内容 根据msdn - 当启用本地缓存时,缓存客户端会在本地存储对对象的引用。这使对象在客户端应用程序的内存中保持事件状态。
在我所有环境中的生产中间件堆栈中,我都看到了这个一次性实例: use # 我已经尝试删除所有我能想到的与缓存相关的内容,但我无法弄清楚它来自哪里。 这是什么? 最佳答案 抽象地说,它在一个 block
我已将我的 WebApp 移至 Azure 应用服务环境,并启用了新的 LocalCache 选项,如 https://azure.microsoft.com/en-us/documentation/
UWP 应用使用位于由其包 ID 标识的唯一文件夹下的多个数据文件夹。具体来说,LocalCache 和 TempState 数据文件夹如何比较和对比? 最佳答案 在桌面上,Windows Store
我开发了一个 Windows Phone 8.1 应用程序,它从我们的服务器下载一些数据并将这些文件复制到 ApplicationData.Current.LocalCacheFolder 文件夹中。
我是一名优秀的程序员,十分优秀!