博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试RxJava2
阅读量:6582 次
发布时间:2019-06-24

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

译者注:关注InfoQ资讯的读者可能已经留意到,我们前面给出了一篇很好的RxJava文章“”。本文是上一篇文章的修订,用相同的例子循序渐进地介绍了如何测试RxJava2。译者将两篇文章中的不同之处用粗体标识出来,并使用添加注释的形式说明示例代码中的差异之处,以供读过前篇的读者快速浏览本文。\

\

关键要点:

\
  • RxJava含有内建的、测试友好的解决方案。 \
  • 使用TestSubscriber去验证Observable。 \
  • 使用TestScheduler可实现对时间的严格控制。 \
  • Awaitility库提供了对测试环境进一步的控制。
\

本文是“”一文的修订,根据RxJava2规范做了全面更新。\

你已经阅读过RxJava的相关内容,也已经在互联网上体验过像“”中的那些示例,现在打算在自己的代码中探索一下响应式编程了。但是,现在却一直困扰着如何测试那些可能会在代码库中发现的新功能呢?\

使用响应式编程,就必须转变对给定问题的推理方式,因为我们要聚焦于作为事件流的流动数据,而非个别数据项。事件通常是被不同的线程所产生和消费,因此在编写测试时必须要对并发问题有着清晰的认识。幸运的是,RxJava提供了测试Observable和Subscription的内建支持,并且是直接构建于RxJava的核心依赖中。\

第一步

\

让我们回顾一下在“”一文中所给出的那个词汇的例子,看一下如何对该例子作测试。让我们从基础测试工具的设置开始。在我们的测试架构中,使用了JUnit作为测试工具。

import io.reactivex.Observable;\import io.reactivex.observers.TestObserver;\import io.reactivex.plugins.RxJavaPlugins;\import io.reactivex.schedulers.Schedulers;\//RxJava2中,包名由rx.xxx改为io.reactivex.xxx。\import org.junit.Test;\import java.util.*;\import static java.util.concurrent.TimeUnit.SECONDS;\import static org.awaitility.Awaitility.await;\import static org.junit.Assert.assertThat;\import static org.hamcrest.Matchers.*;\\\public class RxJavaTest {\    private static final List\u0026lt;String\u0026gt; WORDS = Arrays.asList(\       \"the\

转载地址:http://ftino.baihongyu.com/

你可能感兴趣的文章
LightOJ 1245(Harmonic Number (II))
查看>>
小知识记录
查看>>
css3 animate 和关键帧 @-webkit-keyframes
查看>>
文字链接颜色设置
查看>>
图片转流
查看>>
ubunto应用软件
查看>>
HTML 标签说明
查看>>
锋利的jQuery-2--判断jQuery获取到的对象是否存在$().length
查看>>
linux 查询系统版本命令、查询端口号是否被占用命令
查看>>
java笔记八:IO流之字符流与字符缓冲流
查看>>
Docker 命令收集
查看>>
myeclipse注册码生成器
查看>>
怎样快速学好PHP技术之PHP学习方法总结
查看>>
iOS App间相互跳转漫谈 part2
查看>>
Java CAS 原理剖析
查看>>
ISCC2014 writeup
查看>>
Kotlin 知识梳理(1) Kotlin 基础
查看>>
js正则表达式
查看>>
iOS socket通信,编解码,浮点型数据解析
查看>>
手把手教你如何新建scrapy爬虫框架的第一个项目(下)
查看>>