强大的RxJava断言库:AssertJ-RxJava
废弃说明: 注意,AssertJ-RxJava已经废弃。为了测试Observables,建议使用RxJava的TestSubscriber,详细信息可参考labs.ribot.co.uk上的教程。虽然当前版本仍可用,但将不再有新的开发活动。
AssertJ-RxJava是一个基于AssertJ扩展的断言库,专门用于测试RxJava的Observables。该库专注于为"Cold" Observables提供优雅的断言方法,你需要将你的Observable转换为BlockingObservable
后才能进行断言。
示例展示
来看看如何使用这个库:
- 断言Observer成功完成,不抛出任何错误:
assertThat(observable.toBlocking()).completes();
- 断言Observer在完成后发射一个单一值"hello":
assertThat(observable.toBlocking())
.completes()
.emitsSingleValue("hello");
- 断言Observer完成且没有发射任何值:
assertThat(observable.toBlocking())
.completes()
.emitsNoValues();
- 断言Observer发射了一个错误:
assertThat(observable.toBlocking()).fails();
- 断言Observer发射的错误是
IllegalArgumentException
类型:
assertThat(observable.toBlocking())
.failsWithError(IllegalArgumentException.class);
- 断言Observer在失败前发射了值"a", "b"和"c":
assertThat(observable.toBlocking())
.fails()
.listOfValuesEmitted()
.containsExactly("a", "b", "c");
- 断言Observer在发射"a"和"b"后完成:
assertThat(observable.toBlocking())
.completes()
.valuesCountIs(10);
安装指南
AssertJ-RxJava已上传至Maven中央仓库。
- 使用Gradle:
testCompile 'uk.co.ribot.assertj-rx:assertj-rx:0.1.0'
- 使用Maven:
<dependency>
<groupId>uk.co.ribot.assertj-rx</groupId>
<artifactId>assertj-rx</artifactId>
<version>0.1.0</version>
<scope>test</scope>
</dependency>
或者,你也可以从发布页面直接下载jar包。
许可证
该项目遵循Apache License 2.0,详情见项目根目录的LICENSE文件。
通过这些简洁易读的API,AssertJ-RxJava提供了强大的断言能力,帮助你在测试RxJava应用时更加得心应手。无论是对单个值还是多个值序列的检查,它都能提供清晰明了的错误反馈,提升你的测试效率。尽管项目已经废弃,但在现有版本中,它仍不失为一个优秀的工具选择。