我有:
val observable: Observable[Int] = Observable.from(List(5))
我可以通过测试测试输入列表是否确实传递给了 observable:
materializeValues(observable) should contain (5)
哪里materializeValues
是:
def materializeValues[T](observable: Observable[T]): List[T] = {
observable.toBlocking.toIterable.toList
}
现在,如果我从未来创建一个 observable,由于测试超时,我似乎无法materializeValues
用于测试。所以如果我有:
val futVal = Future.successful(5)
val observable: Observable[Int] = Observable.from(futVal)
materializeValues(observable) should contain(5)
它超时并且没有通过测试。物化这两个可观察的过程有什么不同,导致我无法阻止它?
另外,测试可观察对象的惯用方式是什么?有什么方法可以不打电话toBlocking
吗?