返回Observable.error时如何测试flatmap

时间:2017-03-15 10:14:16

标签: unit-testing rx-java

我在返回Observable.flatmap时尝试测试Observable.error,但我找不到合适的方法。

@Override
public Observable<List<MovieInfo>> getPopMoviesFromNet(int page) {
    return Observable.just(page)
            .flatMap(new Func1<Integer, Observable<List<MovieInfo>>>() {
                @Override
                public Observable<List<MovieInfo>> call(Integer page) {
                    try{
                        List<MovieInfo> movies = MovieOkhttp.getMovieData(page);
                        return Observable.just(movies);
                    }catch (IOException e){
                        return Observable.error(e);
                    }
                }
            });
}

我试图模仿这个repository

@Test
public void getPopMoviesFromNetError() {
    Mockito.when(repository.getPopMoviesFromNet(1))
            .thenReturn(Obserable.error(new IOException()));
            //can not do 

}

我是Mockito和UnitTest的新手,但我认为我找不到一种测试Obserable.flatmap的好方法,因为我不擅长Rxjava

EXTRA:Rxjava 1.2

1 个答案:

答案 0 :(得分:0)

我从video

获得解决方案
Mockito.when(repository.getPopMoviesFromNet(1))
        .thenReturn(Obserable.<List<MovieInfo>>error(new IOException()));

我很抱歉,我不擅长泛型课。