TIP:java
这部分相应的代码在step-2文件夹中(https://github.com/vert-x3/vertx-guide-for-java-devs)git
在这以前,咱们发布咱们的wiki应用没有测试,这可不是一个好的实践,如今咱们看看如何编写测试Vert.x的代码。github
vertx-unit模块提供了工具集测试异步操做,你能够选择其中一种测试框架好比JUnit数据库
使用JUnit,我么须要加入下面的依赖:微信
使用JUnit测试的时候须要加入VertxUnitRunner注解来使用vertx-unit特性:框架
使用这一个runner,JUnit 测试方法的生命周期中接受一个TestContext,这个对象提供访问基础assertions,store data和async-oriented helpers(咱们将在本章说起)。异步
为了说明这点,让咱们考虑一个异步的状况下,咱们要检查一个定时器任务被调用一次,这一周期中的任务已经调用了3次。由于代码执行是异步的,测试完成前测试方法已经存在,因此在测试经过或者失败须要经过异步的结果:async
1.TestContext是runner提供的一个参数。ide
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生命周期的方法:
1.咱们将重写verticle的配置,其余的使用默认值。
2.asyncAssertSuccess颇有效的用来测试异步结果是否正确,这个变量没有什么参数,用来链接其余handler。
清除Vert.x context是简单的,咱们能够用asyncAssertSuccess肯定没有error发生:
service操做重要的是CURD操做,JUnit测试集成了全部的这种测试方法:
1.这是Async最后执行的地方。
2.这是一种可选的方案退出测试用例,依赖于JUnit的超时机制,测试线程等Async完成或者超时。
原文连接:http://vertx.io/docs/guide-for-java-devs/
个人微信公众号: