博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vert.x 单元测试 译<六>
阅读量:6906 次
发布时间:2019-06-27

本文共 1216 字,大约阅读时间需要 4 分钟。

hot3.png

TIP:

这部分相应的代码在step-2文件夹中(https://github.com/vert-x3/vertx-guide-for-java-devs)

在这之前,我们发布我们的wiki应用没有测试,这可不是一个好的实践,现在我们看看如何编写测试Vert.x的代码。

Getting started

vertx-unit模块提供了工具集测试异步操作,你可以选择其中一种测试框架比如JUnit

使用JUnit,我么需要加入下面的依赖:

171806_u34c_2277632.png

使用JUnit测试的时候需要加入VertxUnitRunner注解来使用vertx-unit特性:

171902_42Py_2277632.png

使用这一个runner,JUnit 测试方法的生命周期中接受一个TestContext,这个对象提供访问基础assertions,store data和async-oriented helpers(我们将在本章提及)。

为了说明这点,让我们考虑一个异步的情况下,我们要检查一个定时器任务被调用一次,这一周期中的任务已经调用了3次。因为代码执行是异步的,测试完成前测试方法已经存在,所以在测试通过或者失败需要通过异步的结果:

172917_75pG_2277632.png

    1.TestContext是runner提供的一个参数。

    2.因为我们用单元测试,所以需要一个Vert.x context。

    3.TestContext assertion 一个基本的例子。

    4.Async对象用来获取异步的成功或者失败。

    5.Async使用countdown锁,当被调用三次后执行。

    6.当timer fires 完成。

    7.每个周期任务在触发一个倒计时,当所有Async完成测试通过。

    8.这里有一个默认的超时时间,可以通过@Test注解重写。

 

测试数据库操作

数据库service很适合用来写测试用例。

我们先部署database verticle,我们配置JDBC连接内存数据库HSQLDB ,成功后我们会拿我们的测试用例服务代理。因为这些操作交织一起,我们利用JUnit的before / after生命周期的方法:

173835_HLFM_2277632.png

    1.我们将重写verticle的配置,其他的使用默认值。

    2.asyncAssertSuccess很有效的用来测试异步结果是否正确,这个变量没有什么参数,用来连接其他handler。

清除Vert.x context是简单的,我们可以用asyncAssertSuccess确定没有error发生:

174229_svHF_2277632.png

service操作重要的是CURD操作,JUnit测试集成了所有的这种测试方法:

174340_3r2f_2277632.png

    1.这是Async最后执行的地方。

    2.这是一种可选的方案退出测试用例,依赖于JUnit的超时机制,测试线程等Async完成或者超时。

 

 

原文链接:http://vertx.io/docs/guide-for-java-devs/

103728_2T6n_2277632.png

我的微信公众号:

223108_3TsV_2277632.png

 

转载于:https://my.oschina.net/u/2277632/blog/1581241

你可能感兴趣的文章
MySQL 5.5 安装方法 详细图解
查看>>
也谈教育公平与户籍改革
查看>>
我的友情链接
查看>>
读Zepto源码之样式操作
查看>>
我的友情链接
查看>>
MyBatis 整合 Spring开发
查看>>
HTML互动视频教程
查看>>
深入浅出Future Pattern
查看>>
微信公众平台企业号回调模式的URL验证
查看>>
平台常用函数介绍
查看>>
公司讲座
查看>>
惆怅,诸事不顺
查看>>
Lambda架构与推荐在电商网站实践
查看>>
Docker Swarm与Apache Mesos的区别
查看>>
消息中间件保证消息一致性解决方案
查看>>
java内嵌浏览器DJNativeSwing
查看>>
Php学习
查看>>
寓意很深刻的故事
查看>>
Confluence 6 权限概述
查看>>
Android小白的探索:2D绘图之Android简易版Microsoft Visio学习之路 三、装饰者模式...
查看>>