在Spring框架下写了一个东西,用到了org.springframework.core.task.TaskExecutor这个接口,用它来执行一个FutureTask实例,但编写单测的时候遇到个问题。
我按照惯常的套路编写单测:
@Resource
TaskExecutor taskExecutorReal; // 从上下文中得到的实际的TaskExecutor实现
@Mock
TaskExecutor taskExecutor = taskExecutorReal; //mock替身
@InjectMocks
MyClass myClass = new MyClassImpl (); // 我开发的类实现
在运行单测的时候遇到问题,程序停在那里不动,不报错也不返回。debug发现在futureTask.get()深处,一个判断是否执行成功的地方,程序不再执行了:
private boolean ranOrCancelled(int state) {
return (state & (RAN | CANCELLED)) != 0; // 程序就在这hold了,其中的RAN和CANCELLED都看不到值
}
对比其他使用了taskExecutor的测试,我发现不适用Mock替身的时候,测试是正常的。于是ugly的在我的MyClass中新加了一个setTaskExecutor()的方法,专门在测试的时候注入真实的taskExecutor,这样就OK了。
求教原来的单测不能执行的原因!请教更好的单测方法!
相关推荐
记得以前面试的时候,面试官问我,...我们常使用的就是 Junit 框架,说到测试,我之前一直没搞清楚,直到现在才有点头绪,不知道你们会不会遇到这种问题,在测试中若是涉及到 find 方法还好,但是涉及到修改数据的操作
内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面熟悉Mockito特性的人员,做到了开箱即用。...使用建议:使用前安装好Maven及Java即可,推荐使用VSCode编辑。
主要介绍了Java mockito单元测试实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
赠送jar包:mockito-core-4.0.0.jar; 赠送原API文档:mockito-core-4.0.0-javadoc.jar; 赠送源代码:mockito-core-4.0.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-4.0.0.pom; 包含翻译后的API文档:...
单元测试工具mockito代码使用示例 文章地址 https://blog.csdn.net/qq_37813031/article/details/104557376
spring集成TestNG与Mockito框架单元测试方法,方便学习者能快速上手如何单测,对自己的代码能够有质量保证。
mockito junit 单元测试 mockito junit 单元测试
TryMockito:使用Mockito测试环境
赠送jar包:mockito-core-4.0.0.jar; 赠送原API文档:mockito-core-4.0.0-javadoc.jar; 赠送源代码:mockito-core-4.0.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-4.0.0.pom; 包含翻译后的API文档:...
SOAP Web服务模拟实用程序,使用Web服务器实例在本地端口上创建真实的服务端点。 这些端点将请求直接委托给模拟。 用户将从中受益 全栈客户端测试 拦截器 处理程序 简单的JUnit规则设置 SOAP故障帮手 所有这些都...
包含 Junit + Hamcrest + Mockito 单元测试涉及到的三个jar包,分别是junit.jar、hamcrest-2.2.jar、mockito-core-3.2.4.jar
模拟食谱包含在 mockito 食谱的不同章节中讨论的 mockito 食谱 - Marcin Grzejszczak src 包含在不同章节中讨论的不同 java 文件。 srctest 包含用于 java 文件的带有 mockito(一些带有 powermock)的 junit 测试。
全面的android应用单元测试方法及案例 1.0版本 结合Junit Mockito与Robolectric实现对MVP架构下数据层,视图层,逻辑层覆盖率100%的全面单元测试
mockito-all-1.10.19.jar mockito-core-4.5.1.jar mockito-junit-jupiter-4.5.1.jar mockito-junit-jupiter-4.5.1-sources.jar
通过使用Mockito,我们可以虚拟出一个外部依赖,这样可以降低测试组件之间的耦合度,使得我们能更专注于代码的流程和结果,从而更好地实现测试目的。 在具体的使用场景中,例如,对于一些不容易构造或者获取的对象...
特别是使用 Kotlin(需要使用 mockito-inline)和 PowerMock(这会进一步加剧问题)的任何人都希望将其添加到他们所有的测试类中以避免大量内存泄漏。 想获得世界范围的知名度并建立 OSS 贡献者的永恒名声吗? 使用...
赠送jar包:mockito-core-2.15.0.jar; 赠送原API文档:mockito-core-2.15.0-javadoc.jar; 赠送源代码:mockito-core-2.15.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-2.15.0.pom; 包含翻译后的API文档...
Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito ...
赠送jar包:mockito-core-3.8.0.jar; 赠送原API文档:mockito-core-3.8.0-javadoc.jar; 赠送源代码:mockito-core-3.8.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.8.0.pom; 包含翻译后的API文档:...
NULL 博文链接:https://zhangzhenting.iteye.com/blog/1829416