Vert.x 单元测试 译<六>

TIP:java

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

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

Getting started

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/

个人微信公众号:

相关文章
相关标签/搜索