我有一个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/