gpt4 book ai didi

unit-testing - 如何模拟改造服务可观察调用 onError?

转载 作者:行者123 更新时间:2023-12-04 04:44:44 24 4
gpt4 key购买 nike

我正在测试这段代码。

service.getProducts()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Result<Catalog<SoajsProductPreview>>>() {

@Override
public void onError(Throwable e) {
view.showErrorView(e);
}

@Override
public void onNext(Result<Product> products) {
view.showProducts(products)
}

@Override
public void onCompleted() {}
});

测试 view.showProducts()模拟服务返回结果工作正常。
我愿意
when(service.getProducts().thenReturn(someObservable);

现在我想测试一下 view.ShowErrorView()当服务抛出错误时调用,但我找不到方法来做到这一点:

显然以下不能编译
when(service.getProducts().thenReturn(someException); 

这会立即引发异常但不会调用订阅者的 onError方法
when(service.getProducts().thenReturn(someException); 

我怎样才能得到 Subscriber.onError()叫?

最佳答案

when(service.getProducts().thenReturn(Observable.error(someException))

应该管用。请参阅以 here 开头的文档.

关于unit-testing - 如何模拟改造服务可观察调用 onError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com