我有以下单元测试:
@Test
fun loadMovieTrailer() {
val video = Video("id", "name", "site",
"videoId", 20, "type")
val observableResponse =
Observable.just(MovieApi.VideoWrapper(Lists.newArrayList(video)))
`when`(movieApi.trailers(anyString())).thenReturn(observableResponse)
with(viewModel) {
assertFalse(isTrailersVisible.get())
showTrailers(movie)
assertTrue(isTrailersVisible.get())
assertFalse(trailers.isEmpty())
assertTrue(trailers.size == 1)
}
}
这就是
movieApi.trailers
改进API方法:
@GET("3/movie/{movieId}/videos")
fun trailers(@Path("movieId") movieId: String): Observable<VideoWrapper>
我在movieapi中有另一个方法,我想为它编写一个测试:
@GET("3/discover/movie?language=en&sort_by=popularity.desc")
fun popularMovies(@Query("page") page: Int): Call<MovieWrapper>
你看到它回来了
Call<T>
对象而不是
Observable
. 如何在测试方法中替换以下部件?
Observable.just(MovieApi.VideoWrapper(Lists.newArrayList(video)))
`when`(movieApi.trailers(anyString())).thenReturn(observableResponse)
完整示例代码可在以下位置找到:
https://github.com/Ali-Rezaei/TMDb-Paging