java单元测试之如何实现异步接口的测试案例
@Testpublic void testExplicitThread() {System.out.println("testExplicitThread");Thread thread = new Thread() {@Overridepublic void run() {System.out.println("thread start.");try {for (int i = 0; i < 5; i++) {System.out.println("progress: " + i);sleep(1000);}} catch (InterruptedException e) {e.printStackTrace();} finally {System.out.println("thread finish.");}}};thread.start();try {thread.join(); // 等待线程执行完毕} catch (InterruptedException e) {e.printStackTrace();}System.out.println("testExplicitThread exit");}
测试用例输出:
/*** 回调接口*/interface Callback {void onStart();void onProgress(int progress);void onFinish();}/*** 异步方法*/static class AsyncDemo {private int len = 0;private Callback callback = null;public AsyncDemo(int len, Callback cb) {this.len = len;this.callback = cb;}public void doJob() {new Thread() {@Overridepublic void run() {if (null != callback) {callback.onStart();}try {for (int i = 0; i < len; i++) {if (null != callback) {callback.onProgress(i);}sleep(1000);}} catch (InterruptedException e) {e.printStackTrace();} finally {if (null != callback) {callback.onFinish();}}}}.start();}}private Object mLock = new Object(); // 同步锁private int mCount = 0; // 加解锁条件@Testpublic void testBlindCallback() {System.out.println("testBlindCallback");Callback cb = new Callback() {public void onStart() {System.out.println("onStart");}public void onProgress(int progress) {System.out.println("onProgress: " + progress);}public void onFinish() {System.out.println("onFinish");synchronized (mLock) {mCount = 0;mLock.notifyAll(); // 回调执行完毕,唤醒主线程}}};System.out.println("before AsyncDemo doJob");AsyncDemo demo = new AsyncDemo(5, cb);demo.doJob();synchronized (mLock) {mCount = 1; // 设置锁条件while (mCount > 0) {try {mLock.wait(); // 等待唤醒} catch (InterruptedException e) {e.printStackTrace();}}}System.out.println("after AsyncDemo doJob");}
测试输出结果:
java单元测试之如何实现异步接口的测试案例相关推荐
- java单元测试异步不进去方法_java单元测试之如何实现异步接口的测试案例
测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4.因为单元测试能够在软件模块组合之前尽快发现问题,所 ...
- Java单元测试之JUnit4详解
2019独角兽企业重金招聘Python工程师标准>>> Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @B ...
- Java基础学习总结(24)——Java单元测试之JUnit4详解
Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before ...
- Java单元测试之模拟利器-使用PowerMock进行Mock测试
首页 国产Linux Linux命令 openSUSE ArchLinux Slackware FreeBSD Ubuntu CentOS Fedora Debian PHP教程 在线教程 登录 注册 ...
- java单元测试之mock篇
java单元测试之mock篇 一.什么是mock? 二.为什么要进行mock? 三.IDEA中使用Mock 3.1.引入mock所需依赖 3.1.IDEA单元测试必备快捷键 3.2.Mock测试相关注 ...
- Java单元测试之Mock框架
一.引言 二.为什么要用Mock 三.Mock使用场景 四.Mock定义 五.Mock框架 五.Mockito 5.1 Mockito基本使用 5.2 MockMVC测试 5.2.1 初始化MockM ...
- java单元测试之Mock测试编写
mock框架官方文档地址:https://javadoc.io/static/org.mockito/mockito-core/3.2.0/org/mockito/Mockito.html#verif ...
- java使用阿里云oss上传文件测试案例+上传策略包装类
产品文档地址: https://help.aliyun.com/product/31815.html 产品购买地址: https://www.aliyun.com/search?scene=all&a ...
- java当中怎么测试异步接口【杭州多测师_王sir】【杭州多测师】
测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4.因为单元测试能够在软件模块组合之前尽快发现问题,所 ...
- 单元测试之道一:NUnit基础
一.单元测试的概述 1.单元测试是开发编写的一小段代码,用于检测被测代码的一个很小的,很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为.执行单元测试是 ...
最新文章
- AngularJS与Django-模板标签冲突
- TDD Tip:方法内部New出来的对象如何Mock
- unity3d 随机生成地形之随机山脉
- SpringBoot异步任务, 以及带返回值的异步任务(@Async 不起作用的原因)
- oracle删除数据用户,oracle删除用户及表空间,导入用户和数据
- 酒水饮料行业进销存软件前十排行榜,强推第一款
- 技本功|数据安全之IDC数据容灾设计实现
- dispatch_group_async
- 用C语言循环码,xinxilunyubianma
- 微信朋友圈python广告评论_利用Python让你的微信朋友圈与众不同,更加高大上
- postman测试Excel文件导入导出功能
- springboot海纳部门人事管理系统毕业设计源码
- multimodal prompting
- razer鼠标测试软件,驱动软实力对比测试_Razer 炼狱蝰蛇2013鼠标_键鼠评测-中关村在线...
- 关于hands on machine learning中datasets数据无法下载的问题
- selenium定位a标签python_selenium自动化,已经定位到A标签的位置,但是点击A标签时不执行后台的js方法。...
- python代码中疯狂print影响python性能吗?print是io吗?结论是做代码性能测试千万不要疯狂print,否则结果严重不准确,性能大幅下降。...
- mt2503 [PHB]如何在IDLE界面拨打SDN号码时能显示其名称?
- 关于学生使用 学生证 申请免费的 Jet Brains 软件使用许可 没有教育邮箱/学生邮箱 clion pycharm intellij idea goland phpstorm rider
- Microsoft发布了Azure Bot Service和LUIS的GA版