java - 查找是否至少有一个 - Observable Java 8 Rx

标签 java functional-programming java-8 rx-java

我有一个Observable<SomeObject>为此,我需要测试至少有一个值“事物”的元素(我想不是流)尊重一个条件(它用于单元测试,所以我需要断言某些内容或至少抛出异常)。我应该如何在 Java 8 中编写这个?

为了更好地解释:

Observable<SomeObject> thing = someFunction();
thing.flatMap(c -> c.toObservable())
.filter(q -> someContidion(q))
.forEach(x -> Assert.assertTrue(x!=null));

当然这不是我需要的,因为如果没有元素与条件匹配,我就看不到任何错误并且单元测试通过。

最佳答案

另一种方法是使用 RxJava 项目已经用于其自己的测试用例的内容,即 TestSubscriber ( TestScheduler 在某些时候也可能对您有用):

@RunWith(JUnit4.class)
public class RxTest {

    @Test
    public void test() throws Exception {
        Observable<String> thing = Observable.just("thing", "stuff", "whatever", "", null);
        Observable<Boolean> test = thing.contains("thing");

        TestSubscriber<Boolean> sub = new TestSubscriber<>();
        test.subscribe(sub);

        sub.assertValue(true);
    }
}

关于java - 查找是否至少有一个 - Observable Java 8 Rx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802137/

相关文章:

java - 我可以编写哪些类型的程序来加强/提升我的早期技能?

java - 版本控制或创建文件增量

java - 如何解决 "Failed to parse XML in AndroidManifest.xml"?

lambda - Java8 Stream.map 在同一流上输出不同的映射函数?

scala - 在Scala中,如何在“if block ”中定义“val”?

Java 8 : Idiomatically creating a Comparator for ordering objects based on their index in a List

java - 递归列出给定目录中的所有文件,隐藏文件夹中的文件除外

java - Java 中是否有等同于 JSON.Net 的东西?

java - 使用 Java 8 的 Stream API,如何编写一个纯净的过滤函数?

java - 如果所有元素均为 null,则流 maptostream 平均值出现问题