使用 Awaitility 测试异步代码
来源:互联网 发布:用idle打开python文件 编辑:程序博客网 时间:2024/05/20 07:20
对于同步方法的测试很简单,调用完后可立马检查执行状态; 而异步方法,由于我们无法确切的知道何时结束,因此以往的办法是用 Thread.sleep(500)
来预估一个执行时间。然后通常我们估计的要长于实际的时间,这就很浪费,况且偶然的超过预估的等待时间也并不意味着代码有问题。还有 sleep
方法还抛出一个检测异常 InterruptedException
, 一般会要对 Thread.sleep(500)
作下简单包装。
于是今天要介绍的 Awaitility 就应运而生了,专门针对异步方法的测试。它的官方文档在 https://github.com/awaitility/awaitility/wiki/Usage。本文主要关注在 Java 8 环境下用 Lambda 的代码书写方式。Awaitlity 实际运行是以某种轮询的方式来检查是否达到某个运行状态,可设定最多,最少等待时间,或永久等待,或自定义轮询策略,之后就开始进行需要的断言,所以它可以尽可能的节省测试异步方法所需的时长。而不像 Thread.sleep(500)
一路等到黑,并且没有回头路。
通常我会在项目中给 JUnit 配上三个最佳伴侣,它们是(按 mvn dependency:tree
中的显示方式):
- org.awaitility:awaitility:2.0.0:test
- org.easytesting:fest-assert:1.4:test
- org.mockito:mockito-core:2.7.22:test
当然如果项目中没有异步调用自然是不需要 Awaitility, 在我的项目中是基本不可能的。以上三种都追求 DSL,以流畅的方式进行愉快的测试。
现在来尝试下 Awaitility 的几种基本的用法,先假定有下面的代码 UserService
阅读全文 >>
0 0
- 使用 Awaitility 测试异步代码
- 异步操作校验工具awaitility快速入门
- 异步校验工具awaitility快速入门
- 异步操作校验工具awaitility源码分析
- IOS XCTest使用异步测试
- objc.io 2.5 测试异步代码 (转)
- Android 自动化测试 Espresso篇:异步代码测试
- Javascript测试框架Jasmine(六):异步代码测试
- 使用JUnit测试代码
- Awaitility用户指导
- 【译】使用Rails 4.2+ 测试异步邮件系统
- XMLHTTP异步获取返回值的代码超时测试(AJAX)
- Android AsynTask 异步线程处理讲解与代码测试
- memcache测试代码及使用
- 使用Python进行代码测试
- 代码测试覆盖率Cobertura使用
- 安卓代码优化 使用ImageLoader实现图片异步加载
- 线程的同步异步,以及具体代码实现,使用场景
- 中国首届开发者关系大会DevRelon2017
- 如何快速合并两个链表
- 基于STM8s官方标准库建立IAR工程
- show databases不能正确显示的问题
- GLSL. 语法基础
- 使用 Awaitility 测试异步代码
- 求最大不重复子串(Java)
- TOP-K
- AndroidStudio插件GsonFormat:根据Json自动生成JavaBean
- sublime 使用技巧
- 字符串中英文混合前后截取
- 一款强大易用的Vue-markdown文本编辑器插件
- 安装CentOS 6.6系统
- 优化算法-共轭梯度法